Excel 如何引用将被复制的表?

Excel 如何引用将被复制的表?,excel,vba,Excel,Vba,我有一个表格格式的模型,这样我就可以通过其中的行进行计算。有几个潜艇可以进行不同的计算,这些潜艇工作得很好。不同的计算使用标题来索引它们应该用于计算的列,但是当复制表时,名称将通过在末尾添加数字来更改 通常,我会创建一个副本,并对历史数据使用该副本,然后使用原始表更新信息并重新运行模型 是否有办法调整我的代码,使其使用ActiveSheet上的表格?在任何给定选项卡上都不会有超过1个表的情况 目前,我使用下面的内容来引用我创建的其他sub中的列,但我使用此sub作为一站式工具来定义所有内容,因此

我有一个表格格式的模型,这样我就可以通过其中的行进行计算。有几个潜艇可以进行不同的计算,这些潜艇工作得很好。不同的计算使用标题来索引它们应该用于计算的列,但是当复制表时,名称将通过在末尾添加数字来更改

通常,我会创建一个副本,并对历史数据使用该副本,然后使用原始表更新信息并重新运行模型

是否有办法调整我的代码,使其使用
ActiveSheet
上的表格?在任何给定选项卡上都不会有超过1个表的情况

目前,我使用下面的内容来引用我创建的其他sub中的列,但我使用此sub作为一站式工具来定义所有内容,因此如果需要添加和定义,我可以在一个地方维护它。您可以忽略对范围的引用,因为这些范围似乎工作正常,因为它们是图纸特定的名称

Private Sub DefineVars()
'Defines my already declared variables

Calc = ActiveSheet.Range("_Calc")
dmCol = ActiveSheet.ListObjects("_Table_Pricer").ListColumns("$ Margin").Index
fxmCol = ActiveSheet.ListObjects("_Table_Pricer").ListColumns("FX Margin").Index
mCol = ActiveSheet.ListObjects("_Table_Pricer").ListColumns("% Margin").Index
cCol = ActiveSheet.ListObjects("_Table_Pricer").ListColumns("% Margin ").Index
spCol = ActiveSheet.ListObjects("_Table_Pricer").ListColumns("Sell Price").Index
Set UoM = ActiveSheet.Range("_Unit_Factor")
Set FxRate = ActiveSheet.Range("_FX_Rate")
Goal = ActiveSheet.Range("_Mah_Min")
LastRow = ActiveSheet.Cells(Cells.Rows.Count, "N").End(xlUp).Row

End Sub

只是把评论写进一个答案。如果一张工作表上的表永远不会超过1个,那么
ActiveSheet.ListObjects(1)
将执行您想要的操作


如果可以有多个表,则更安全的做法是评估表名或表内容,以找到所需的表。

ActiveSheet。如果表上只有一个表,ListObjects(1)
将始终引用该表。我觉得我应该取你的名字,因为我对没有意识到这一点感到非常健忘,你似乎指出了显而易见的事实。享受额外的销售机会;)@马克:谢谢你,先生,我可以再来一杯吗!我将发布另一个有点相关的问题,关于面临类似挑战的特定计算,如果您感兴趣,欢迎您提供帮助: