0

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

VBA.UserForms.Add (PasswordForm.Name)
PasswordForm.Show(模态)

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

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

4

3 回答 3

1

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

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

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

于 2009-05-20T19:25:07.720 回答
0

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

PasswordForm.Show (Modal)

PasswordForm.Show

现在它可以工作了,尽管我必须稍微改变它的工作方式以适应表单不再是模态的事实(我想无论如何这是更好的解决方案,模态可能会让用户感到烦恼,它是只是我现在必须检查他们是否提交了表格等)。

谢谢大家的建议。

于 2009-05-21T00:58:51.713 回答
0

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

于 2009-05-21T16:04:10.040 回答