|
For j = 1 To n
r = 10 + (j - 1) * 50
For i = 1 To UBound(arr)
If arr(i, 1) = j Then
s = s + 1:
br(s, 1) = arr(i, 2)
br(s, 2) = arr(i, 3)
br(s, 3) = arr(i, 4)
End If
Next
Range("d" & r).Resize(UBound(br), 3) = br
Set d = Nothing
Next j
上面这段代码执行结果是:
当J=1时,取的是对应1的结果,取数正确
当J=2时,会把1的结果也取进来
当J=3时,会把1、2的结果也取进来
我希望的是可以对应取值:
当J=1时,取的是对应1的结果
当J=2时,取的是对应2的结果
当J=3时,取的是对应3的结果
当J=n时,取的是对应n的结果
请各位老师帮忙看一下,怎么修改,谢谢!
前附赋没清除
字典没作用
改法之一(见红色部分):
For j = 1 To n
r = 10 + (j - 1) * 50
s = 0
For i = 1 To UBound(arr)
If arr(i, 1) = j Then
s = s + 1:
br(s, 1) = arr(i, 2)
br(s, 2) = arr(i, 3)
br(s, 3) = arr(i, 4)
End If
Next
Range("d" & r).Resize(s, 3) = br
Next j
|
|