将macros分配给在运行时VBA中创build的button

我的问题基本上是在这篇文章中回答的

但不是下面的课程代码:

Sub CmdEvents_Click() MsgBox "Hello World" End Sub 

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

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

但是,上面的代码不会在任何情况下正确地返回我刚刚在消息框中运行时创build的button的名称。

它返回“button6”….我在我的工作簿中search,我甚至没有这个名字。

实际上,我修改了上面链接中的原始代码,从列表中获取所有button的名称。 这样我可以修改列表,从而修改button的名称或标题,如果我想。 而这个button6甚至不存在于我的列表中。

我在我的代码中做了一些陷阱,显示了我用来获取button名称的variables的消息框,它是正确的,它携带的string我想在创buildbutton之前命名我的button。

假设你跟着你链接的post,你的类实例已经包含一个variablesCmdEvents ,它引用了点击的button,所以你可以使用

 Msgbox CmdEvents.Name 

如果你的代码不同,发布相关的部分是很有用的,这样我们就可以看到发生了什么。