- 一维数组的数据不能直接输出到单元格,需要转置才能输出到单元格,使用Application.Transpose函数。
Sub vv()
Dim arr(1 To 10), i As Long
For i = 1 To 10
arr(i) = i
Next
Range("a1").Resize(10, 1) = Application.Transpose(arr)
End Sub
- 一维数组转置后就会变成二维数组,然后可以直接输出到单元格。如上图辅助的brr数组,就是arr转置后的结果。
- 如果要输出到一列当中,就会产生如下图这样的结果,只输出数组的第一个元素。
- 将上述代码的arr改为二维数组,直接输出数据到单元格。
Sub vv()
Dim arr(1 To 10, 1 To 1), i As Long
For i = 1 To 10
arr(i, 1) = i
Next
Range("a1").Resize(10, 1) = arr
End Sub
- 数组的截取
- arr是一个1-10个元素的一维数组,如果截取前面5个输出到单元格,如下图
- 转置为二维数组后,同样截取前面5个元素输出到单元格,如下图
- 如果resize给出的单元格范围超出了数组的边界,如下图