代码之家  ›  专栏  ›  技术社区  ›  MGOwen

Outlook中的用户窗体没有响应(无法关闭,按钮单击事件不激发)

  •  0
  • MGOwen  · 技术社区  · 17 年前

    我在Outlook VBA宏中创建了一个简单的用户窗体-我可以使用以下代码使窗体可见:

    VBA.UserForms.Add (PasswordForm.Name)
    PasswordForm.Show (Modal)
    

    …… UserForm_Initialize() 事实上,事件确实发生了。但是点击表单上的“提交”按钮没有任何作用 SubmitButton_Click() 事件(通过双击设计器中的按钮自动创建)从不激发。此外,用户窗体在窗口的右上角通常有一个红色的小X,但是单击它不会做任何事情(窗体不会关闭或退出)。

    知道我做错了什么吗?我对VBA很陌生。

    3 回复  |  直到 17 年前
        1
  •  1
  •   Oorang    17 年前

    有时,vba中的控件与它们的事件分离。这可能是因为您重命名了控件,也可能是因为您意外地重命名了事件过程(尽管由于其他原因很少发生这种情况)。另外,如果在运行表单之前忘记了“编译”,则可能是表单上的错误导致了该问题。

    重复检查的最简单方法是在设计视图中打开表单,选择相关按钮并按F7。如果创建了一个新过程,复制粘贴代码,然后只需将旧代码复制/粘贴到其中,然后去掉旧代码。

    完成后,转到“调试”菜单并单击“编译”。如果检测到任何错误,请再次单击“编译”进行更正。重复,直到编译完成,没有任何抱怨。然后再次尝试运行表单。

        2
  •  0
  •   MGOwen    17 年前

    好的,解决了:我改变了:

    PasswordForm.Show (Modal)
    

    PasswordForm.Show
    

    现在它可以工作了,尽管我需要改变它的工作方式,以适应表单不再是模态的事实(我想这是更好的解决方案,模态对用户来说可能很烦人,只是我现在必须检查它们是否提交了表单,等等)。

    谢谢大家的建议。

        3
  •  0
  •   Andrew Scagnelli    17 年前

    在Office03/07中,如果要确保它显示模式,请设置窗体的 .ShowModal “行为” True “。在演出期间,我有过尝试使窗体模式化的问题。