NGÔ THỊ THU HIỀN
NGÔ THỊ THU HIỀN
Thảo luận 23 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 334 lượt xem

Trong trường hợp bảng đối chiếu có 1000 giá trị thì sao ạ không có hàm

Trong trường hợp bảng đối chiếu có 1000 giá trị thì sao ạ, không có hàm giống vlookup hả thầy

Thảo luận 23 câu trả lời
Lượt xem 334 lượt xem
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 08:05 - May 24, 2021

Chào bạn phần này bạn có thể dùng vòng lặp và điều kiện if để thực hiện nhé

for i = 1 to dc
 if(sheetnguon.range("A"&i).value = sheetname.range("B5")) then
   sheetname.range("B6").value = sheetnguon.range("B"&i).value
 end if
next i
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 21:05 - May 24, 2021
ý em là ở bảng tham chiếu sheetname có 1000 dòng thì sao ạ, ví dụ có 1000 bộ phận thì sao ạ
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 21:05 - May 24, 2021
trong ví dụ chỉ có 3 bộ phân thôi ấy ạ, vậy em dùng tiếp vòng lặp for cho bộ phận đúng ko thầy
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 23:05 - May 24, 2021

Chào bạn bạn sử dụng vòng lặp thì 10.000 bộ phận nó cũng duyệt ra, bạn theo ví dụ đó code nhé, có phần nào khúc mắc cứ mạnh giạn hỏi gitiho

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 14:05 - May 27, 2021

trong ví dụ trên, em thử dùng 2 vòng lặp, gọi 2 biến i và n để chạy song song 2 bảng dữ liệu nhưng gặp lỗi 


for i = 1 to 7


for n = 1 to 3 ạ

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 14:05 - May 27, 2021
Nhờ thầy xem giúp em nếu đúng thì nên viết code ntn ạ
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 14:05 - May 27, 2021

Chào bạn bạn có thể đẩy file của mình lên giúp gitiho không?

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021
file em đây ạ, em đang muốn viết dạng tổng quát, cho những dữ liệu lớn như 1000 dòng cần look up và 1000 dòng tham chiếu ạ
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021

Chào bạn với trường hợp này do chỉ cần dùng 1 biến i là được, vì cột dữ liệu bạn lấy song song

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021

trong trường hợp lệch nhau thì sao ạ, em cần dạng tổng quát í ạ. em chỉ đang lấy ví dụ số cụ thể thôi ạ

Hàm vlookup sử dụng được cho nhiều range dữ liệu khác nhau ạ

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021

như ví dụ trong bài giảng thì 2 bảng có số dòng lệch nhau đó ạ

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:05 - May 28, 2021

Chào bạn nếu lệch nhau bạn thêm vòng lặp như sau 

for i = 1 to n
 for j = 1 to m
    if(range("A"&i) = range("B"&j)) then
      // code lấy dữ liệu
  end if
 next j
next i

Còn nếu bạn muốn tốc độ nhanh nữa thì sẽ sử dụng mảng để thay thế nhé.

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 17:05 - May 30, 2021
NGÔ THỊ THU HIỀN 17:05 - May 30, 2021
em có làm theo hướng dẫn nhưng không vlookup được hết các dòng ạ, nhờ thầy xem file này và sửa giúp em ạ
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 11:05 - May 31, 2021

Chào bạn bạn thử code sau nhé:

Sub timdulieu()
    Dim i, j
    For i = 2 To 8
        For j = 2 To 4
            If (Range("B" & i).Value = Range("E" & j).Value) Then
                Range("C" & i).Value = Range("F" & j).Value
            End If
        Next j
    Next i
End Sub

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 21:06 - Jun 01, 2021

em đã chạy được code. Em cảm ơn thầy ạ

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 08:06 - Jun 02, 2021

Chúc bạn học tốt cùng gitiho phần 8 và 4 kia bạn có thể dùng code dongcuoi để ứng dụng vào nhé. về bản chất là bạn lặp theo điều kiện nào đó là được

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 16:06 - Jun 03, 2021

Em đang viết câu lệnh thực hiện gồm:

- Mở 1 file bất kì được chọn

- Thêm 1 sheet vào file đó và copy tất cả dữ liệu từ cột A đến cột D của sheet1

Em đã viết code như dưới nhưng debug ở dòng gán dữ liệu. Nhờ thầy xem giúp em đọc code phía dưới ạ. 

Sub loc_noi_dung()
With Application.FileDialog(msoFileDialogFilePicker)
                        .AllowMultiSelect = False
                        .Show
Dim wb As Workbook
Set wb = Workbooks.Open(.SelectedItems(1))

Dim dongdau As Long
dongdau = 1

Dim dongcuoi As Long
dongcuoi = wb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

Dim ws_add As Worksheet
Set ws_add = wb.Worksheets.Add

wb.ws_add.Range("A" & dongdau & ":D" & dongcuoi).Value = wb.Sheet1.Range("A" & dongdau & ":D" & dongcuoi).Value

End With

End Sub
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 17:06 - Jun 03, 2021

Chào bạn bạn thử với sau nhé.

https://drive.google.com/file/d/1ZfKQ...

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 19:06 - Jun 06, 2021

thưa thầy, em đã tham khảo bài tập trên và viết code tương tự nhưng luôn bị sai ở lệnh gán giá trị, ở dòng này ạ

wb.ws_add.Range("A" & dongdau & ":D" & dongcuoi).Value = wb.Sheet1.Range("A" & dongdau & ":D" & dongcuoi).Value
Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 09:06 - Jun 07, 2021

Khi viết code mà có chỉ rõ đối tượng workbook thì bạn không được viết đối tượng Worksheet theo code-name.

Phải viết theo sheet-name hoặc theo số thứ tự của sheet.

Bạn sửa lại chỗ này nhé: wb.Sheet1.Range...

Vỗ tay vỗ tay
NGÔ THỊ THU HIỀN 11:06 - Jun 07, 2021

Chào bạn bạn cần viết dạng như sau

Workbooks(wb).Sheets(ws).Range("A"...

phần này bạn sử dụng tên sheets nhé. không sử  dụng code name, codename áp dụng với nguyên gốc file đó thôi nhé.

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông