|
本帖最后由 laoau138 于 2017-3-29 16:51 编辑
VBA数组成绩均大于等于80分为什么缺少一行了
Sub test()
Dim ar, ar1(), i%, m%, k, st1, st2 'VBA数组成绩均大于等于80分为什么缺少一行了
ar = [b4].CurrentRegion
ReDim ar1(UBound(ar), 7)
st1 = [b23].Value: st2 = [c23].Value
For i = 2 To UBound(ar)
If ar(i, 3) >= st1 And ar(i, 4) >= st2 Then
k = k + 1
For m = 0 To 7
ar1(k, m) = ar(i, m + 1)
Next m
End If
Next i
[b26].Resize(k, 8) = ar1
End Sub
后面的7应该是对的,如果前面的UBound(ar)是正确的话,
就是K的初值错了,你的K是从1开始累加的,实际数组是从0开始累加的,所以最上面会空一行。
把K=K+1放到for~next循环体下面去。
|
|