当我使用
时,我的宏会抛出类型不匹配错误Myarr= Application.Index(arr,0,1)
我尝试添加显式选项并将变量定义为变体,但似乎没有任何效果。
arr
数组是从CSV文件创建的,包含100000行和11列。
当我在观察窗口中检查时arr
看起来很好(我可以看到每行和每列的值)
以下是代码:
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
任何人都可以建议我做错了吗?
答案 0 :(得分:2)
当涉及到输入数组的上限时,许多工作表函数的限制只有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”