Arrays 用于填充数组的“For循环”
我从来都不擅长开发阵列。我试图在电子表格中循环一大组数据,将其存储在数组中,并使用它通过If语句基本上执行VLOOKUP函数。当我运行程序时,我得到: 运行时错误9-下标超出了错误所在的范围 编辑:当我注释掉Redim语句时,我得到一个关于j类型不匹配的错误…数据只包含整数Arrays 用于填充数组的“For循环”,arrays,excel,vba,Arrays,Excel,Vba,我从来都不擅长开发阵列。我试图在电子表格中循环一大组数据,将其存储在数组中,并使用它通过If语句基本上执行VLOOKUP函数。当我运行程序时,我得到: 运行时错误9-下标超出了错误所在的范围 编辑:当我注释掉Redim语句时,我得到一个关于j类型不匹配的错误…数据只包含整数 Dim LoArray() Dim TargetWorkbook As Workbook Dim SourceWorkbook As Workbook Dim i As Long Dim j As Long Di
Dim LoArray()
Dim TargetWorkbook As Workbook
Dim SourceWorkbook As Workbook
Dim i As Long
Dim j As Long
Dim k As Long
Assign the Workbook File Name along with its Path
TargetPath = "C:\filepath.....xlsx"
Set TargetWorkbook = Workbooks.Open(TargetPath)
Set SourceWorkbook = ThisWorkbook
'Sets Counter in For Loop
k = TargetWorkbook.Sheets("LRG Pivots").Cells(Rows.Count, "A").End(xlUp).row
'error happens here
ReDim LoArray(1 To i, 0 To 1)
'Count Rows in LoadWTable
For row = 6 To k
i = i + 1
j = Cells(row, 2) 'throws mismatch error
LoArray(i, j) = Cells(i, j)
Next row
'Store Rows in Array
ReDim Preserve LoArray(1 To i, 0 To 1)
End Sub
发生错误时“i”等于什么?发生错误时我等于1。您应该显示您声明LoArray和i的位置。顺便说一句,您只能使用ReDim Preserve来更改多维数组的最后一个维度,这样该行也会抛出错误。我添加了dim语句scellsrow,2该文档是从哪个工作簿/工作表读取的?在编写时,它将引用Activesheet,假设您的代码包含在常规模块中,而不是工作表模块中