|
请修改代码:
请用循环或更好的方法,同时删除表2、表3中与表1中各行数字个位数字相同的行,表2未删除的内容存放在表4,表3未删除的内容存放在表5.
现在的代码不用x循环可以对表2进行操作,加上x循环同时对表2和表3进行操作,出现代码re(cnt, j) = ar2(i1, j)越界(用x循环目的是同时对表2、表3进行操作)。没有查出原因,请老师帮助。
谢谢!
ymq123 发表于 2013-12-18 15:56
老师你好,在少的情况下调用还行,万一有20个以上的表2、表3,代码就多了。
麻烦你能不能用循环做这道题 ... - Sub 求不同()
- Dim dic As Object, rng As Range, arr1, i&, j%, d$, arr, x%
- arr1 = Range("a2").CurrentRegion.Value
- Set dic = CreateObject("scripting.dictionary")
- For i = 2 To UBound(arr1)
- d = ""
- For j = 1 To UBound(arr1, 2)
- If arr1(i, j) <> "" Then
- d = d & "-" & Right(arr1(i, j), 1)
- End If
- Next
- dic(d) = ""
- Next
-
- For x = 1 To 2
- arr = Range("h" & 5 * x - 3 & " :m" & 5 * x)
- Set rng = Range("p" & 5 * x - 3)
- Call xh2(arr, dic, rng)
- Next
- End Sub
- Sub xh2(arr, dic, rng)
- Dim brr()
- ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
- For i = 1 To UBound(arr)
- d = ""
- For j = 1 To UBound(arr, 2)
- If arr(i, j) <> "" Then
- d = d & "-" & Right(arr(i, j), 1)
- End If
- Next
- If Not dic.exists(d) Then
- n = n + 1
- For j = 1 To UBound(arr, 2)
- brr(n, j) = arr(i, j)
- Next
- End If
- Next
- rng.Resize(UBound(brr), UBound(brr, 2)) = brr
- End Sub
复制代码0
|
|