Copy theo điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thuongsykxps

Thành viên chính thức
Tham gia
3/6/08
Bài viết
67
Được thích
20
Mình có 1 vấn đề mong mọi người giúp. Copy theo điều kiện từ sheet này sang sheet khác. file đính kèm.
Cảm ơn mọi người.
 

File đính kèm

Sao bạn không dùng hàm VLOOKUP cho tiện việc nhỉ?
 
Upvote 0
Dùng vlookup thi ok, nhưng mình không chỉnh sửa được, nên mới dùng copy đó bạn.
 
Upvote 0
Dùng vlookup thi ok, nhưng mình không chỉnh sửa được, nên mới dùng copy đó bạn.
Bạn thích Code thì mình viết cho bạn, nhưng với dạng này dùng Vlookup nhanh chóng và thuận tiện, khi thay đổi thì xóa hàm điền số liệu là xong.
 

File đính kèm

Upvote 0
Dùng vlookup thi ok, nhưng mình không chỉnh sửa được, nên mới dùng copy đó bạn.

Tôi chẳng biết bạn muốn chỉnh sửa thứ gì? Tại sao không dùng name động:

Tên Name: CSDL

CSDL =OFFSET(CSDL!$A$3,,,COUNTA($A$3:$A$65536),4)


Sau đó dùng VLOOKUP thôi.

=IF(ISNA(VLOOKUP($A5,CSDL,COLUMN(),0)),0,VLOOKUP($A5,CSDL,COLUMN(),0))

Bạn không cần chỉnh sửa gì cả.
 

File đính kèm

Upvote 0
Mình có 1 vấn đề mong mọi người giúp. Copy theo điều kiện từ sheet này sang sheet khác. file đính kèm.
Cảm ơn mọi người.

Tham khảo và tùy biến file đính kèm :
Mã:
Sub copy()
    Dim tmparr(), item, tmp, arr()
    Dim i As Long, n As Long, index As Integer, k As Long
        arr = Range("A5:D23").Value
        tmparr = Sheets("CSDL").Range("A3:D23").Value
        With CreateObject("Scripting.Dictionary")
             For i = 1 To UBound(tmparr, 1)
                            If Len(tmparr(i, 1)) Then
                    tmp = Trim(CStr(tmparr(i, 1)))
                    If Not .exists(tmp) Then
                        n = n + 1
                        .Add tmp, n
                    End If
                End If
            Next
            For i = 1 To UBound(arr, 1)
                If Len(arr(i, 1)) Then
                    k = .item(Trim(CStr(arr(i, 1))))
                    For index = 2 To 4
                       arr(i, index) = tmparr(k, index)
                    Next
                End If
            Next
        End With
        Range("A5:D23") = arr
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom