Arrays 用于填充数组的“For循环”

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

我从来都不擅长开发阵列。我试图在电子表格中循环一大组数据,将其存储在数组中,并使用它通过If语句基本上执行VLOOKUP函数。当我运行程序时,我得到:

运行时错误9-下标超出了错误所在的范围

编辑:当我注释掉Redim语句时,我得到一个关于j类型不匹配的错误…数据只包含整数

 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,假设您的代码包含在常规模块中,而不是工作表模块中