Excel VBA修改保留超出范围



我试图重拨并保留我的数组,但它不断出现一个错误,说它超出了范围,我不知道为什么?

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

最新更新