VBA Application.Index with array 导致类型不匹配错误 13

VBA Application.Index with array causes type mismatch error 13

我的宏在使用

时抛出类型不匹配错误
Myarr= Application.Index(arr,0,1)

我尝试添加显式选项并将变量定义为变体,但似乎没有任何效果。

arr 数组是从 CSV 文件创建的,它包含 100000 行和 11 列。
arr 在手表中查看时看起来不错window(我可以看到每行和每列的值)

代码如下:

Sub ArrTest()
    Dim Myarr 
    Dim Arr 
    Dim wb As Workbook 
    Set wb = Workbooks.Open("F:\People.csv")
    Arr = wb.Sheets(1).Range("A1").CurrentRegion.Value
    Myarr = Application.Index(Arr, 0, 2)
End Sub

谁能指出我做错了什么?

许多工作表函数在涉及输入数组的上限时都有超过 65k 左右的限制,因此您可能会达到这个上限。对 65k 行有效,对 66k 行失败。

Sub ArrTest()
    Dim Myarr
    Dim Arr

    Arr = Range("a1:C65000").Value
    Myarr = Application.Index(Arr, 0, 1) '<<< OK

    Arr = Range("a1:C66000").Value
    Myarr = Application.Index(Arr, 0, 1) '<<<fails

End Sub

如果您希望能够处理超过 65k 的上限,那么您将需要使用循环来填充您的数组 "slice"