ReDim不在里面for循环,没有数组大小的重述

我有下面的代码,问题是数组大小“varray”没有更新每次插入一个新行,我知道这通过检查varray的值每次通过Excel中的代码插入一个新行。 这意味着代码将停在固定数组的末尾。 我试图在多个点,以查看是否工作,但它没有。

Sub test() Dim i As Long Dim numbers() As Integer Dim varray As Integer varray = Sheets("Original").Cells(Rows.Count, "A").End(xlUp).Row ReDim Preserve numbers(varray) For i = 10 To varray ReDim numbers(varray) If Cells(i, 16).Value <> "" Then Cells(i + 1, 16).EntireRow.Insert Cells(i + 1, 1).EntireRow.Value = Cells(i, 1).EntireRow.Value Cells(i + 1, 6).Value = Cells(i, 16).Value Cells(i + 1, 1).Value = 20305 Cells(i + 1, 11).Value = "" Cells(i + 1, 12).Value = "" Cells(i + 1, 15).Value = "" Cells(i + 1, 16).Value = "" i = i + 1 ReDim numbers(varray) End If ReDim numbers(varray) Next i End Sub 

你从来没有改变varray的值,所以你的ReDim语句总是将数组的大小调整到初始值。

varray已经被分配了:

 varray = Cells(Rows.Count, "A").End(xlUp).Row 

该variables的值不会简单地通过在工作表中插入单元格/行来更改。