用户窗体未触发初始化或激活事件

5

我在工作表中放置了一个用户窗体控制按钮来启动一个宏,该宏显示一个用户窗体,在该窗体中,我希望使用复选框(使用工作簿集合)显示打开的文件。 我希望运行一个仅针对用户选择的文件执行操作的宏。

因此,对于我工作表中的按钮,我已经分配了以下宏:

Private Sub Button2_Click()

    Load MyForm

    MyForm.Show

End Sub 

起初,我将下面的代码放在宏子程序所在的模块中。由于它不起作用,我右键单击用户表单并选择“查看代码”,将下面的代码放在那里。但是仍然显示相同的静态设计用户表单,而不是动态的。我在load Myform和MYform.Show()处设置了断点,并逐步执行代码。它根本没有进入初始化或激活方法。

Private Sub MyForm_Activate()
  'for checking the whether this method is called or not I am trying to change caption
  MyForm.LabelSelectFile.Caption = "dhfdfldkfldzjf;zdfkz;d"

  Dim mymyWorkBook As Workbook
  For Each mymyWorkBook In Workbooks
     'code for creating checkbox based on the file name displayed by the workbook collection      
  Next mymyWorkBook
End Sub

我不理解为什么那个事件没有被触发。请帮我解决这个问题。谢谢。
1个回答

13

即使表单的名称是MyForm,你仍需要使用userform

'~~> in your worksheet
Private Sub Button2_Click()
    MyForm.Show
End Sub

'~~> In the userform code area
Private Sub UserForm_Initialize()
    '~~> Your code here
End Sub
或者
Private Sub UserForm_Activate()

End Sub

最好总是从下拉菜单中选择事件,而不是输入它。

enter image description here


谢谢,我已经完成了宏的编写。昨天我才开始编写用户窗体,我不知道名称应该始终为UserForm。因为对于按钮单击事件处理程序是button1_Click(),所以我认为它也适用于初始化事件。有趣的是,动态生成复选框并从中读取所需的时间比克服这个问题要少得多。 - saiki4116

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接