31、[VBA入门到放弃笔记] 从数组到单元格
作者:
叶知行 | 来源:发表于
2017-06-21 16:27 被阅读302次
- 一维数组的数据不能直接输出到单元格,需要转置才能输出到单元格,使用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转置后的结果。

结果

Paste_Image.png
- 如果要输出到一列当中,就会产生如下图这样的结果,只输出数组的第一个元素。

Paste_Image.png
- 将上述代码的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个输出到单元格,如下图

Paste_Image.png
- 转置为二维数组后,同样截取前面5个元素输出到单元格,如下图

Paste_Image.png
- 如果resize给出的单元格范围超出了数组的边界,如下图

Paste_Image.png
本文标题:31、[VBA入门到放弃笔记] 从数组到单元格
本文链接:https://www.haomeiwen.com/subject/ouftcxtx.html
网友评论