我正在尝试创建一个填充在 for 循环中的单元格条目数组(例如 A6、B6 等)。
然而数组
MyArray
总是空的,我不知道为什么它没有被填充到 for 循环中。下面是(代码的适当部分正在做其他事情)我的代码:
Sub ListSheets()
' Defining all variables (objects) used within the code, establishing their
'classes
Dim i As Integer
Dim array_size As Integer
Dim MyArray() As String
array_size = 26
ReDim MyArray(array_size) As String
For intLoop = 1 To 26
MyArray(intLoop, 1) = Chr$(64 + intLoop) + "6"
Next
Set CopyFrom = MyArray
Sheets("vba_deposit").Range("A1").Resize(CopyFrom.Rows.Count).Value = CopyFrom.Value
End Sub
有任何想法吗?
提前谢谢了。
最佳答案
试试这个:
Sub ListSheets()
Dim i As Integer
Dim array_size As Integer
Dim MyArray() As String
array_size = 26
ReDim MyArray(1 To array_size, 1 To 1)
For intLoop = 1 To 26
MyArray(intLoop, 1) = Chr$(64 + intLoop) + "6"
Next
Sheets("vba_deposit").Range("A1").Resize(UBound(MyArray)).Value = MyArray
End Sub
您第一个使用
MyArray(intLoop, 1)
的想法很好 - 因为在这种情况下,不需要使用 Transpose
(这并不总是有效,因为它对数组中的元素数量有限制):Range(...).Value = MyArray
.但是,我对您的代码进行了一些更改:ReDim MyArray(1 To array_size, 1 To 1)
Range(...).Value = MyArray
关于arrays - 数组未从 For Loop VBA 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22758776/