经常访问表数据

我试图从工作表中读取表并存储在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下标超出范围

知道这里可能有什么问题。我猜想一次又一次地查看此代码,现在我碰到了墙。我需要另一只眼睛来帮助我。