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"
我的宏在使用
时抛出类型不匹配错误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"