如何获取常规(非ActiveX)控件所在的工作表?

时间:2015-03-18 01:04:20

标签: excel vba excel-vba

我点击一个按钮就可以打电话给我。我选择使用常规按钮(也称为表单控件),而不是ActiveX控件,因为我已经看到ActiveX控件上的文本大小波动,而常规按钮不会出现此问题。我希望sub能够使用按钮所在的工作表。我在考虑这样的事情:

   Sub showSheetName()

   Dim sht As Worksheet

   'this would work if the code was in the worksheet's module
   Set sht = Me

   msgbox sht.Name

   End Sub

但是这个子是在共享模块中,而不是工作表的模块,因为我想要几张能够使用它。因此Me并未指向工作表,此方法仅提供Invalid use of Me keyword

如何获得该按钮所在的工作表的引用?

编辑:如果不清楚,那么它不是ActiveX控件的重要原因是因为这意味着没有myButton_Click()事件我可以用来获取工作表对象并传递给带有工作表参数的showSheetName()版本的工作表。

2 个答案:

答案 0 :(得分:2)

Set sht = ActiveSheet ...

这当然假设手动调用过程(即用户正在主动单击按钮),而不是通过CallApplication.Run语句调用。

当工作表处于活动视图时,用户只能单击该按钮。

答案 1 :(得分:-1)

没有普通按钮这样的东西。也没有ActiveX控件。

ActiveX是MS的营销术语,用于描述使用COM的控件。作为一个术语,它在几年前退休了(技术仍然是最新的)。

因此很难知道你指的是什么。

使用HELP使用的名称。列出指定您正在使用的对象/等的代码。