Click()子(VBA)上的全局对象引用
我想知道是否有办法引用“Click()”子对象。
为了使它更清晰,假设我们有一个名为foo1的button,并且此button有一个点击子“foo1_Click()”。 vba是否有一个关键字来获得对全球性的foo1的引用?
就像是:
Public Sub foo1_Click() GlobalKeyword.Property End Sub
Ps:类似于来自java的“this”一词,指的是它自己的类的实例
编辑:在这个例子中,“GlobalKeyword”将引用“foo1”
我想你正在寻找这里find的Application.Caller
属性。
在你的情况下,你会想要做一些像….
Public Sub foo1_Click() Dim button As Shape Set button = ThisWorkbook.Sheets("sheetname").Shapes(Application.Caller) End Sub
当然之后,你会想做一些错误检查,以确保button
不是什么。
如果你想用很多button使用相同的代码,那么你可能会更好地使用一个单独的子例程。
Private Sub foo1_Click() Call do_something End Sub Private Sub foo2_Click() Call do_something End Sub Sub do_something() 'called by the foo _Click event MsgBox Application.Caller End Sub
这样,只需更新do_something
过程,就可以轻松维护所有button的核心function。