Giúp xem code vba lấy giá trị không trùng

Liên hệ QC

Tuan_hcth

Thành viên thường trực
Tham gia
8/4/07
Bài viết
206
Được thích
11
Em chào anh, chị
Em đang viết code lấy các giá trị trong mảng arr() không tồn tại trong mảng tarr() để gán vào mảng karr() nhưng thông báo lỗi như sau:
1584591157579.png
Em nhờ các anh, chị xem giúp ạ. Em cảm ơn
 
Upvote 0
Bạn thử Redim karr(1 to Ubound(arr), 1 to 1) xem sao
 
Upvote 0
Upvote 0
Không báo lỗi nhưng kết quả không chính xác, những giá trị trung nó cũng liệt kê và nhân thành nhiều lần.
Đấy là code của bạn mà.Có phải mình viết đâu.Dữ liệu mình cũng có nhìn thấy nó thế nào đâu.Mà cũng chẳng biết bạn viết cái gì nữa.Bạn chỉ đưa mỗi cái file ảnh code.Sửa còn không được à.Tốt nhất bạn đưa cái file lên nhé...
 
Upvote 0
Người đâu mà keo vậy. Xin có cái File thôi mà cũng không cho
PHP:
Sub Ma_DNR()
    Dim Dic As Object, Arr, dArr(), tArr()
    Dim Er1 As Long, Er2 As Long, I As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
    Er1 = .Range("E" & Rows.Count).End(xlUp).Row
    Arr = .Range("A5:I" & Er1).Value
End With
With Sheet2
    Er2 = .Range("B" & Rows.Count).End(xlUp).Row
    tArr = .Range("B3:G" & Er2).Value
End With
If Er1 >= 5 And Er2 >= 3 Then
    For I = 1 To UBound(tArr)
        Dic.Item(tArr(I, 1)) = I
    Next I
    ReDim dArr(1 To UBound(Arr), 1 To 1)
    For I = 1 To UBound(Arr)
        If Not Dic.Exists(Arr(I, 5)) Then
            K = K + 1
            dArr(K, 1) = Arr(I, 5)
        End If
    Next I
    With Sheet4
        If K Then
            .Range("B" & Er2 + 1, .Range("B" & Rows.Count).End(xlUp)).ClearContents
            .Range("B" & Er2 + 1).Resize(K) = dArr
        Else
            GoTo Thoat:
        End If
    End With
Else
Thoat:
    Beep
End If
Set Dic = Nothing
End Sub
 
Upvote 0
Người đâu mà keo vậy. Xin có cái File thôi mà cũng không cho
PHP:
Sub Ma_DNR()
    Dim Dic As Object, Arr, dArr(), tArr()
    Dim Er1 As Long, Er2 As Long, I As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
    Er1 = .Range("E" & Rows.Count).End(xlUp).Row
    Arr = .Range("A5:I" & Er1).Value
End With
With Sheet2
    Er2 = .Range("B" & Rows.Count).End(xlUp).Row
    tArr = .Range("B3:G" & Er2).Value
End With
If Er1 >= 5 And Er2 >= 3 Then
    For I = 1 To UBound(tArr)
        Dic.Item(tArr(I, 1)) = I
    Next I
    ReDim dArr(1 To UBound(Arr), 1 To 1)
    For I = 1 To UBound(Arr)
        If Not Dic.Exists(Arr(I, 5)) Then
            K = K + 1
            dArr(K, 1) = Arr(I, 5)
        End If
    Next I
    With Sheet4
        If K Then
            .Range("B" & Er2 + 1, .Range("B" & Rows.Count).End(xlUp)).ClearContents
            .Range("B" & Er2 + 1).Resize(K) = dArr
        Else
            GoTo Thoat:
        End If
    End With
Else
Thoat:
    Beep
End If
Set Dic = Nothing
End Sub

Em cảm ơn anh nhiều ạ
 
Upvote 0
Web KT

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

Back
Top Bottom