工作表名称更改时如何使macros工作

我如何使它成为macros,即使有人更改了Sheet1,Sheet2等标签的名称,我的macros也可以在电子表格上工作。

例如从我的代码这个片段:

Set MyWorkbook = Workbooks.Open(DataDialog.SelectedItems(Counter)) Set MySheet = MyWorkbook.Worksheets("Sheet1") 

获取运行时错误“9”:

下标超出范围

问题是我需要这个macros能够在多个不同的工作簿上使用不同的命名标签,在很多情况下,标签将被隐藏,看起来是Sheet1真的是Sheet3。 有没有一种方法可以单独在活动工作表上进行macros观工作?

是的,你不必硬编码“Sheet1”。 相反,你可以这样做:

方法1:声明variables

 Dim sName as string sName = Activesheet.Name 

然后,您可以在variablessName中使用名称,而不是对其进行硬编码。

方法2:您可以使用工作表索引

 sName = Sheets(1).Name 

其中1表示工作簿中的索引页数。

所以,当表名更改时,可以使用上述两种方法中的任何一种来获取表名。