在ActiveXbutton上单击捕获工作表名称

我有下面的代码,完美的工作。 我只是想了解是否有更好的方法来获取工作表名称。

情景:我有“x”工作表与“n”切换button。 每个切换button通过隐藏的切片器控制工作表中显示的数据。 要切换的数据只是零和一个,所以当点击切换button时,显示/隐藏“1”。

代码:

Private Sub tgl_btn_Click() Set InputSheet = Worksheets("My Worksheet") Call do_filter("myvalue", tgl_btn.Value, "PivotTable1") End Sub 

do_filter将切换button的名称以及值和数据透视表名称添加到隐藏/取消隐藏数据透视表中值的模块。

因此,在模块调用之前,工作表上的每个切换button都包含以下行:

 Set InputSheet = Worksheets("My Worksheet") 

是否有任何方法来获取这个工作表名称没有硬编码到每一个单击button的逻辑?

原因:用户重命名工作表,因此杀死切换buttonfunction。

原因:用户重命名工作表

是的,用户善于打破虚弱的VBA代码 – 实际上非常好!

有时你可以closuresActiveSheet – 这很好。 但是其他时候,你需要获得一个特定的工作表,并使用它的Name留给你同样的问题:用户破坏的东西。

find并select工程资源pipe理器 (Ctrl + R)中的工作表,并查看属性工具窗口(F4) – 注意Name属性匹配用户可以随意更改的名称:

我的真棒表

还要注意,有一个(Name)属性,这里的值为Sheet1 。 这是工作表的CodeName 。 VBA使用该标识符定义了一个全局范围的对象variables,所以你可以这样做:

 Set inputSheet = Sheet1 

而且无论用户用什么方式重命名表格,它都能正常工作。