Outlook中的UserForm没有响应(无法关闭,按钮单击事件不会触发)

时间:2009-05-20 04:19:01

标签: vba outlook outlook-vba userform

我在Outlook VBA宏中创建了一个简单的UserForm - 我可以使用此代码使表单可见:

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

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

知道我可能做错了什么吗?我对VBA很新。

3 个答案:

答案 0 :(得分:1)

有时VBA中的控件会与事件分离。这可能是因为您重命名了控件,或者是因为您不小心重命名了事件过程(尽管由于其他原因很少会发生)。此外,如果您在运行表单之前忘记了“编译”,则表单上可能会出现错误。

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

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

答案 1 :(得分:0)

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

PasswordForm.Show (Modal)

PasswordForm.Show

它现在有效,虽然我必须改变它的工作方式,以适应表格不再是模态的事实(我认为这是更好的解决方案,无论如何,模态可能会令人讨厌用户,我必须检查他们现在提交的表格等。

感谢大家的建议。

答案 2 :(得分:0)

在Office 03/07中,如果要确保它显示模态,请将表单的.ShowModal行为设置为“True”。我在show事件期间尝试制作表单模式时遇到了问题。