Excel VBA,编译错误,应为数组

Excel VBA,编译错误,应为数组,excel,vba,Excel,Vba,我试图运行我的代码,得到一个编译错误。 目前我正在努力优化我的代码,因为我读到我需要更多地使用变体,而不是访问循环中的工作簿。目前,如果我运行时不做任何更改,则需要很长时间。对于这个问题,我缩短了我的代码很多,可以提供完整的,如果需要 我被困在这条线上,thisArr(I-1,1)=thisArr(I-1,1)&“|”&sourceWS(I,readcols(j)) ReadCols一点也不声明,而SourceWS被定义为字符串而不是数组,就像您所引用的那样 也许你的意思是: Dim Sourc

我试图运行我的代码,得到一个编译错误。 目前我正在努力优化我的代码,因为我读到我需要更多地使用变体,而不是访问循环中的工作簿。目前,如果我运行时不做任何更改,则需要很长时间。对于这个问题,我缩短了我的代码很多,可以提供完整的,如果需要

我被困在这条线上,
thisArr(I-1,1)=thisArr(I-1,1)&“|”&sourceWS(I,readcols(j))


ReadCols
一点也不声明,而
SourceWS
被定义为字符串而不是数组,就像您所引用的那样

也许你的意思是:

Dim SourceWS as Variant, ReadCols as Variant

如果要将工作表范围指定给数组,则它需要是一个变量


无关观察:

这只是不必要地创建额外的代码行:

  j = 8
        thisArr(i - 1, 2) = sourceWS(i, readcols(j))
…而不是简单地:

thisArr(i-1, 2) = sourceWS(i, readcols(8))

我看不到您在哪里声明并为数组赋值
readcols
sourceWS
是一个字符串。您正试图将其索引为2D数组。
  j = 8
        thisArr(i - 1, 2) = sourceWS(i, readcols(j))
thisArr(i-1, 2) = sourceWS(i, readcols(8))