我试图从工作表中读取表并存储在listobject中。我需要多次使用此表数据,并且我不想每次需要表数据时都访问工作表。我认为每次访问工作表都会降低性能。 我还需要根据标题名称引用表数据。 我当时想写这样的东西。
public Tbl_MyTable as listobject
public Arr as variant
Set Tbl_MyTable = Workbooks("Myworkbook").worksheets("Myworksheet").ListObjects("Tbl1")
tRows = Tbl_MyTable .DataBodyRange.Rows.Count
for i=1 to 10
config= ArrConfig(i)
call readtable(tRows, config)
Set Destination = workbooks("x").sheets("y").Range("A2")
Destination.Resize(1,UBound(Arr, 1)).Value = Arr
'Inside Sub readtable
For i = 1 To tRows
if config= A
Arr(i) = Range("Tbl_MyTable[Header1]")(i).Value
else if config =B
Arr(i) = Range("Tbl_MyTable[Header2]")(i).Value
else
Arr(i) = Range("Tbl_MyTable[Header3]")(i).Value
end if
.
.
问题在于它仅适用于顶级循环的第一次迭代。 下次我出现以下错误
错误号:90下标超出范围
知道这里可能有什么问题。我猜想一次又一次地查看此代码,现在我碰到了墙。我需要另一只眼睛来帮助我。