|
请高手帮助查找代码 result(l, m) = arr1(i, m)下标越界原因。谢谢
- Private Sub 相同_Click()
- Dim arr1, arr2
- Dim key1 As String
- Dim result()
- Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer
- Dim blCancel As Boolean
- arr1 = Range("a1:j252")
- arr2 = Range("a254:j505")
- ReDim result(1 To UBound(arr1), 1 To UBound(arr1, 2))
- For i = LBound(arr1) To UBound(arr1)
- For j = LBound(arr1) To UBound(arr1)
- blCancel = False
- key1 = ""
- For k = LBound(arr1, 2) To UBound(arr1, 2)
- key1 = key1 & arr1(i, k)
- If arr1(i, k) <> arr2(j, k) Then
- blCancel = True
- Exit For
- End If
- Next
- If Not blCancel And Len(key1) > 0 Then
- Debug.Print "arr1(" & i & "--arr2)" & j
- l = l + 1
- For m = LBound(arr1, 2) To UBound(arr1, 2)
- result(l, m) = arr1(i, m)
- Next
- End If
- Next
- Next
- If l > 0 Then
- Range("a4049").Resize(l, UBound(arr1, 2)) = result
- Else
- MsgBox "无相同的数据行"
- End If
- arr1 = Range("a507:j758")
- arr2 = Range("a760:j1011")
- ReDim result(1 To UBound(arr1), 1 To UBound(arr1, 2))
- l = 0
- For i = LBound(arr1) To UBound(arr1)
- For j = LBound(arr1) To UBound(arr1)
- blCancel = False
- key1 = ""
- For k = LBound(arr1, 2) To UBound(arr1, 2)
- key1 = key1 & arr1(i, k)
- If arr1(i, k) <> arr2(j, k) Then
- blCancel = True
- Exit For
- End If
- Next
- If Not blCancel And Len(key1) > 0 Then
- Debug.Print "arr1(" & i & "--arr2)" & j
- l = l + 1
- For m = LBound(arr1, 2) To UBound(arr1, 2)
- result(l, m) = arr1(i, m)
- Next
- End If
- Next
- Next
- If l > 0 Then
- Range("a1012").Resize(l, UBound(arr1, 2)) = result
- Else
- MsgBox "无相同的数据行"
- End If
- End Sub
复制代码
|
|