|
新手学数组希望高手指导.问题为:
1.如下代码不知道错在哪,请指正?
2.能否改善代码提高效率?
谢谢!
Sub aa()
Dim arr, arr1
Dim i%, j%,s%
arr = Range("a1:e" & [A65536].End(3).Row) '第一行为标题行'
ReDim arr1(1 To UBound(arr), 1 To 5) '列宽度固定'
For i = 2 To UBound(arr) '数据区域从第二行开始'
s = 0
For j = 1 To 5
If arr(i, 2) = "X" Then
s = s + 1
arr1(s, j) = arr(i, j) '错误提示:下标越界,这时的S=0
End If
Next
Next
[g1].Resize(s, 5) = arr1 '错误提示:应用程序定义错误或对象定义错误,这时S=0'
End Sub
你循环循环错了吧
这样试试 - Sub aa()
- Dim arr, arr1
- Dim i%, j%, s%
- arr = Range("a1:e" & [A65536].End(3).Row) '第一行为标题行'
- ReDim arr1(1 To UBound(arr), 1 To 5)
- s = 0
- For i = 2 To UBound(arr) '数据区域从第二行开始'
- If arr(i, 2) = "X" Then
- s = s + 1
- For j = 1 To 5
- arr1(s, j) = arr(i, j) '错误提示:下标越界,这时的S=0
- Next
- End If
- Next
- [g1].Resize(s, 5) = arr1
- End Sub
复制代码
|
|