使用dynamic数组的Excel VBA溢出错误

我在下面的部分得到溢出区域,我不明白为什么。 单步执行代码,lRows和lCols被设置为正确的值,并且redims在数组上设置了正确的范围,但是当我尝试将范围值赋给数组时,失败了(在行上:arrData = rng.value) 。 我的行数通常会达到90,000+,但是我拥有所有的东西,所以我认为这不会是一个问题。

Sub test() Dim arrData() As Variant Dim arrReturnData() As Variant Dim rng As Excel.Range Dim lRows As Long Dim lCols As Long Dim i As Long, j As Long lRows = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row lCols = ActiveSheet.Range("A1").End(xlToRight).Column ReDim arrData(1 To lRows, 1 To lCols) ReDim arrReturnData(1 To lRows, 1 To lCols) Set rng = ActiveSheet.Range(Cells(1, 1), Cells(lRows, lCols)) arrData = rng.value ' Overflow error on this line For j = 1 To lCols For i = 1 To lRows arrReturnData(i, j) = Trim(arrData(i, j)) Next i Next j rng.value = arrReturnData End Sub 

尝试

 Dim arrData as Variant arrData = Range(Cells(1, 1), Cells(lRows, lCols)) 

和更多的信息看到这个答案