princewind31
Thành viên mới 

			
		- Tham gia
- 11/11/19
- Bài viết
- 3
- Được thích
- 0





Fix: k = 0 nên Redim KQ(1 To k, 1 To UBound(tmp, 2)) lỗi out of range. Còn tại sao k = 0 thì rà lại code. Muốn không báo lỗi thì đặt điều kiện If k > 0 trước đó và lúc đó kết quả sẽ emptyMình có đoạn code so sánh 2 bảng dữ liệu nhưng đang bị lỗi.
Nhờ anh em fix hộ
k = 0 nên Redim KQ(1 To k, 1 To UBound(tmp, 2)) lỗi out of range --> debugFix: k = 0 nên Redim KQ(1 To k, 1 To UBound(tmp, 2)) lỗi out of range. Còn tại sao k = 0 thì rà lại code. Muốn không báo lỗi thì đặt điều kiện If k > 0 trước đó và lúc đó kết quả sẽ empty


Bạn có 2 vòng lặp kiểm tra. Nếu cái chk = 0 thì tăng k lên thành k +1.Sorry các bạn nếu mình có những câu thích hợp.
Nhưng các bạn có thể giúp mình làm vd với

    If chk = 0 Then
        k = k + 1
        For c = 1 To 4
            tmp(k, c) = tmp1(r, c)
        Next c
    End If
      
    If chk = 0 Then
        k = k + 1
        For c = 1 To 3
            tmp(k, c) = tmp2(r, c)
        Next c
            tmp(k, 5) = tmp2(r, 4)
    End IfFunction fRNG(Rng As Range) As Variant
If Rng.Columns.Count = 1 Then Exit Function
Dim Dic As Object: Set Dic = CreateObject("Scripting.Dictionary")
Dim R As Long, Tmp(), DG(), KQ(), K As Long, So As Double, iR As Long
On Error GoTo LoiCT
 Tmp = Rng.Value
For R = 1 To UBound(Tmp, 1)
    If Tmp(R, 1) <> "" And Not Dic.Exists(Tmp(R, 1) & Tmp(R, 2)) Then
        Dic.Add Tmp(R, 1) & Tmp(R, 2), ""
    End If
Next R
 DG = Dic.keys
Set Dic = Nothing
 ReDim KQ(1 To UBound(DG) + 1, 1 To UBound(Tmp, 2))
For K = 1 To UBound(KQ, 1)
1    So = 0: iR = 0
    For R = 1 To UBound(Tmp, 1)
3        If Tmp(R, 1) & Tmp(R, 2) = DG(K - 1) Then So = So + Tmp(R, 4):
        iR = R:                     MsgBox iR
    Next R
5    For C = 1 To UBound(KQ, 2) - 1
        KQ(K, C) = Tmp(iR, C)
    Next C
        KQ(K, UBound(KQ, 2)) = So
19 Next K
fRNG = KQ
Err_:       Exit Function
LoiCT:
    If Err = 13 Then
        MsgBox Err, , Erl():                GoTo Err_
    Else
        Resume Next
    End If
End Function