我试图重拨并保留我的数组,但它不断出现一个错误,说它超出了范围,我不知道为什么?
Dim FirstArray(0) As Variant
Dim SecondArray(0) As Variant
Dim ArrSize As Variant
row = 9
ArrSize = 1
Do While Not Cells(row, 3).Comment Is Nothing
FirstArray(ArrSize - 1) = Cells(row, 3).Value
ReDim Preserve FirstArray(ArrSize)
ArrSize = ArrSize + 1
row = row + 1
Loop
应该是:
Dim FirstArray() as Variant
Dim SecondArray() As Variant
一开始我也犯了同样的错误
要声明一个变量数组,不需要给它一个初始大小。
此外,在为其0索引赋值之前,请确保将其重新Dim为1。
ReDim Preserve FirstArray(ArrSize)
FirstArray(ArrSize - 1) = Cells(row, 3).Value
希望这能有所帮助!
您还可以使用ArrayList对象,这样就不用重新Dim了。还增加了功能(例如,请参阅此处)
Dim FirstArray As Object
Set FirstArray = CreateObject("System.Collections.ArrayList")
row = 9
Do While Not Cells(row, 3).Comment Is Nothing
FirstArray.Add Cells(row, 3).Value
row = row + 1
Loop