发布网友
共2个回答
热心网友
首先,dim arr(11)定义完成后,数组中没有任何内容,而且这样定义的数组下标为0,既arr(0)才是第一个数据
而Set ran = Sheet1.Rows(arr(1))这里直接用到数组arr(1),将会产生一个错误,因为你数组中没有数据
楼主目的是选中所有arr数组中指定的行,可以改成
另外Union方法是 Application 对象的一个方法,不是工作表的方法,所以不能用sheet1.union
Sub test()
Dim arr, i As Integer
arr = Array(3, 5, 9, 7, 1) '这里的数字代表指定的行,arr数组下标从0开始
Set ran = Sheet1.Rows(arr(0))
For i = 0 To 4
Set ran = Union(ran, Rows(arr(i)))
Next i
ran.Select
End Sub
这段代码既选中工作表,1,3,5,7,9这5行
热心网友
数组赋值不能直接这样用 等于 某个单元格区域……要通过循环语句逐个赋值……考虑修改如下:
Dim aa() As Double
ReDim arr(1 To 1036)
For i = 1 To 1036
arr(i) = Cells(i, 8)
Next
Stop
由于你使用了 动态数组 所以在赋值前 必须给它一个重新设置范围的语句 ReDim……