有没有办法为表单控件定义事件过程,例如ActiveX对象的情况?
我有一个GUI,当前用户添加/删除ActiveX命令按钮,但在尝试将项目添加到全局集合时添加了每个按钮时,会遇到Error 91。我最好的猜测是因为this much hated phenomenon。根据项目的当前状态,如果我能够定义其事件过程,我最好的选择是切换到使用表单控制按钮。如果没有,我可能需要以某种方式保存全局变量并在操作ActiveX控件对象后读回它们。
答案 0 :(得分:2)
如果您只想添加按钮和捕获点击,您可以为它们分配一个公共宏,并根据按钮的名称(您在创建按钮时设置,以及哪些可以是通过被调用程序中的Application.Caller
访问
Sub AddButtons()
With ActiveSheet.Buttons.Add(100, 100, 50, 50)
.Name = "button1"
.OnAction = "ClickHandler"
End With
With ActiveSheet.Buttons.Add(200, 100, 50, 50)
.Name = "button2"
.OnAction = "ClickHandler"
End With
End Sub
Sub ClickHandler()
Dim bName As String
bName = Application.Caller
Select Case bName
Case "button1": MsgBox "Clicked First button"
Case "button2": AnotherSub
End Select
End Sub