将宏指定给在运行时VBA中创建的按钮

时间:2012-09-11 19:05:58

标签: excel vba button runtime

我的问题基本上在this post

中得到解答

但不是下面的类代码:

Sub CmdEvents_Click()
   MsgBox "Hello World"
End Sub

我需要运行此代码(这只是一个示例,我想使用稍后在程序中点击的按钮的名称)

Sub CmdEvents_Click()
Dim mvCtrl As Control
Set mvCtrl = Me.ActiveControl
MsgBox mvCtrl.Name
End Sub

但是上面的代码不会以任何方式正确返回我刚刚在消息框中创建的按钮的名称。

它返回“按钮6”....我在我的工作簿中搜索了一下,我甚至没有这个名字。

实际上,我修改了上面链接中的原始代码,以便从列表中获取所有按钮的名称。这样我就可以修改列表,从而根据需要修改按钮的名称或标题。而按钮6甚至不存在于我的列表中。

我在我的代码中制作了一些陷阱,显示了我用来获取按钮名称的变量的消息框,而且它是正确的,它带有我想要在创建它之前命名我的按钮的字符串。

1 个答案:

答案 0 :(得分:1)

假设您关注了您关联的帖子,您的班级实例已经包含一个变量CmdEvents,该变量引用了点击的按钮,因此您可以使用

Msgbox CmdEvents.Name 

如果您的代码不同,发布相关部分以便我们了解正在发生的事情会很有用。