Tag: 事件处理用户

VBA Excel Userform EventHandlerdynamic生成的控件无法按预期方式工作

我在Excel 2013中工作,用运行时创build的控件devise一个用户窗体。 我有麻烦制作一个function,将触发dynamic创build的控件的更改事件。 这些控件包含在一个独立的类模块中,用于创build并pipe理它们。 我想添加一个在combobox的变化事件上触发的函数,所以我声明了WithEvents: Private WithEvents myComboBox As MSForms.ComboBox … other controls and variable declarations… 我有一个函数传递了框架,我想控制在,以便我可以创build类内的所有组件。 Sub initialize(myID As String, myFrame As MSForms.Frame, Left As Double, Top As Double) … Set myComboBox = myFrame.Controls.Add("Forms.ComboBox.1", myID & "_comboBox") … End Sub 这一切都起作用,并且combobox被创build并且属性改变了,尽pipemyComboBox成功改变了combobox的显示方式。 由于myComboBox被声明为WithEvents ,我可以在下拉菜单中findmyComboBox_Change作为选项,并将其放入模块中: Private Sub myComboBox_Change() MsgBox ("Change Event Fired") End Sub 但是这个函数不会运行,我不知道为什么。 当进行更改时,消息框不会出现,放入此函数的断点不会停止任何代码的运行。 […]

将事件处理程序分配给在VBA中dynamic创build的用户窗体上的控件到子项中

我的问题与这一个有关 。 我创build了一个类: Public WithEvents btn As MSForms.CommandButton Private Sub btn_Click() MsgBox "Hello" End Sub 下面的代码运行良好。 我的意思是显示10个button,点击后,出现消息框。 Dim collBtns As Collection Public Sub UserForm_Initialize() Dim btn As CommandButton Dim btnH As cButtonHandler Set collBtns = New Collection For k = 1 To 10 Set btn = testform.Controls.Add("Forms.CommandButton.1", True) With btn .Caption = "Title" .Left = […]

在Excel用户窗体上将点击VBA函数分配给一个dynamic创build的button

我使用以下代码在Excel用户窗体上dynamic创buildbutton: With Me.CurrentFrame.Controls.Add("Forms.CommandButton.1") .Caption = "XYZ" .name = "AButton" .Font.Bold = True .ForeColor = &HFF& … blah blah blah End With 我想分配一个函数来运行时点击这些button,但我找不到一个简单的方法来做到这一点,因为没有属性作为button本身的一部分。 有没有办法使用上述成语做到这一点? 我应该以不同的方式来处理这件事吗?