我在Outlook VBA宏中创建了一个简单的UserForm - 我可以使用此代码使表单可见:
VBA.UserForms.Add (PasswordForm.Name) PasswordForm.Show (Modal)
... UserForm_Initialize()
事件实际上确实触发了。但是点击表单上的“提交”按钮什么都不做 - SubmitButton_Click()
事件(通过双击设计器中的按钮自动创建)永远不会触发。此外,用户窗体在窗口的右上角有一个通常的小红色X,但是点击它不会做任何事情(窗体不会关闭或退出)。
知道我可能做错了什么吗?我对VBA很新。
答案 0 :(得分:1)
有时VBA中的控件会与事件分离。这可能是因为您重命名了控件,或者是因为您不小心重命名了事件过程(尽管由于其他原因很少会发生)。此外,如果您在运行表单之前忘记了“编译”,则表单上可能会出现错误。
仔细检查的最简单方法是在设计视图中打开表单,选择相关按钮并按F7。如果创建了一个新程序,请复制粘贴代码然后将旧代码复制/粘贴到其中,然后删除旧代码。
完成后,转到“调试”菜单并单击“编译”。如果检测到任何错误,请再次单击“编译”进行更正。重复直到它编译没有抱怨。然后再次尝试运行您的表单。
答案 1 :(得分:0)
好的,解决了:我改变了:
PasswordForm.Show (Modal)
到
PasswordForm.Show
它现在有效,虽然我必须改变它的工作方式,以适应表格不再是模态的事实(我认为这是更好的解决方案,无论如何,模态可能会令人讨厌用户,我必须检查他们现在提交的表格等。
感谢大家的建议。
答案 2 :(得分:0)
在Office 03/07中,如果要确保它显示模态,请将表单的.ShowModal
行为设置为“True
”。我在show事件期间尝试制作表单模式时遇到了问题。