Cách tạo mã code VBA cho hàm vloopkup, chèn thêm dòng dữ liệu

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Huonggiang13

Thành viên chính thức
Tham gia
11/4/23
Bài viết
79
Được thích
0
Em cần vlookup dữ liệu từ sheet dữ liệu sang sheet điều tra
VD: Bên sheet dữ liệu tai ô A3 A4 có mã A00001-01 A00001-02, nhưng bên sheet điều tra lại chỉ có A00001-01
Mong muốn của em là lấy được hết dữ liệu bên sheet dữ liệu sang bên sheet điều tra. trường hợp nếu bên sheet dữ liệu có mã hàng đó mà bên sheet điều tra không có thì tự động sẽ chèn thêm dòng dữ liệu đó vào.
Mong anh chị giúp em.
 

File đính kèm

  • vlookup và chèn dòng.xlsx
    22.2 KB · Đọc: 27
Upvote 0
Thế sao không chạy macro để kết thúc câu chuyện này đi mà hỏi lại làm gì?
Bạn là cái gân gà chính hiệu.
Thì bắt đầu chưa biết gì. Đúng là gà công nghiệp luôn ấy. Nếu đã biết nhiều người ta gọi là am hiểu rồi. Nãy e chạy không được. Thôi chắc do máy em làm sao ấy. Để e xem lại ạ
 
Upvote 1
Em chưa biết chuyện đó bác ơi!
Có nhiều cách để biết chuyện này mà, ví dụ:

(1) Nhờ ai đó mới đăng chưa đến 30 bài đăng bài vô mục '2uảng cáo. . .'
(2) Tạo thêm 1 NICKNAME cho chính mình & tự thử
(3) Hỏi anh Hai Lúa - phụ trách kỹ thuật diễn đàn
(4) . . . . .
 
Upvote 0
Đọc chú thích trong code:
Rich (BB code):
Sub DoTimCapNhatDL()
    Dim aKT, aDL, aKQ, i&, j&, k&, rw&, endR&, dic As Object, Rng As Range
    endR = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
    aDL = Sheet1.Range("A2:F" & endR).Value
    endR = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
    aKT = Sheet2.Range("A2:F" & endR).Value
    ReDim aKQ(1 To UBound(aDL) * 2, 1 To UBound(aDL, 2))
    Set dic = CreateObject("Scripting.Dictionary")
   
    'Duyet + lay du lieu sheet Du LIEU
    For i = 1 To UBound(aDL)
        If Not dic.Exists(aDL(i, 1)) Then
            dic(aDL(i, 1)) = i
            k = k + 1
            For j = 1 To UBound(aDL, 2)
                aKQ(k, j) = aDL(i, j)
            Next
        End If
    Next
   
    'Duyet + lay du lieu sheet Dieu tra ma sheet DU LIEU khong co
    For i = 1 To UBound(aKT)
        If Not dic.Exists(aKT(i, 1)) Then
            k = k + 1
            aKQ(k, 1) = aKT(i, 1)
        End If
    Next
   
    'Chep vao J2 va sap xep theo cot ma so (thay J2 bang dia chi mong muon)
    Set Rng = Sheet2.Range("J2")
    With Rng.Resize(k, UBound(aDL, 2))
        .Value = aKQ
        .Sort Key1:=Rng, Order1:=xlAscending
    End With
End Sub
Anh ơi cho em hỏi tý ạ. Hôm trước anh làm giúp em lấy dữ liệu tại cột A trở đi, bây giờ em muốn lấy dữ liệu bắt đầu từ cột B thì e cần sửa code ở chỗ nào thì chạy được ạ. Anh chỉ giúp em với
 
Upvote 0
Anh ơi cho em hỏi tý ạ. Hôm trước anh làm giúp em lấy dữ liệu tại cột A trở đi, bây giờ em muốn lấy dữ liệu bắt đầu từ cột B thì e cần sửa code ở chỗ nào thì chạy được ạ. Anh chỉ giúp em với
Thôi. Tôi dừng hỗ trợ bạn.
 
Upvote 0
Anh ơi cho em hỏi tý ạ. Hôm trước anh làm giúp em lấy dữ liệu tại cột A trở đi, bây giờ em muốn lấy dữ liệu bắt đầu từ cột B thì e cần sửa code ở chỗ nào thì chạy được ạ. Anh chỉ giúp em với
Dăm ba hôm lại đổi code một lần như này khó ai theo được bạn ạ. Hỏi thì nên hỏi cái tổng quát ngay từ đâu. Mà bạn cũng nên tìm hiểu mấy cái cơ bản đi để sau này còn biết để mà tùy chỉnh theo ý muốn
 
Upvote 0
Dăm ba hôm lại đổi code một lần như này khó ai theo được bạn ạ. Hỏi thì nên hỏi cái tổng quát ngay từ đâu. Mà bạn cũng nên tìm hiểu mấy cái cơ bản đi để sau này còn biết để mà tùy chỉnh theo ý muốn
Chủ bài đăng đã đạt chuẩn trên 30 bài rồi; Ha, ha, ha, ha,. . . .

 
Lần chỉnh sửa cuối:
Upvote 0
Thôi. Tôi dừng hỗ trợ bạn.
Dạ vâng em cảm ơn
Bài đã được tự động gộp:

Dăm ba hôm lại đổi code một lần như này khó ai theo được bạn ạ. Hỏi thì nên hỏi cái tổng quát ngay từ đâu. Mà bạn cũng nên tìm hiểu mấy cái cơ bản đi để sau này còn biết để mà tùy chỉnh theo ý muốn
Dạ vâng ạ. Em cảm ơn anh
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom