如何在 Word 中退出多个子目录 VBA

How to exit multiple subs in Word VBA

我正在使用 VBA。我有一个 Word 文档,在打开时会启动一个用户表单。用户窗体接受来自用户的大量输入(通过文本框、组合框、复选框和列表框),然后单击用户窗体底部的命令按钮。然后执行的代码从用户窗体获取所有输入,处理信息,并在文档中的几个书签中填充适当的数据。

我通常不太注意纠错,因此如果我没有把所有事情都做对,我的宏就会崩溃(我只是一个下班后做个人项目的菜鸟)。我正在尝试实施最佳实践,因此我想构建一些错误处理代码。特别是,如果跳过用户表单上的数据字段并停止脚本处理,我希望通知用户。

我可以检测是否有遗漏并用消息框通知用户并退出立即子例程。我不知道如何退出两个子程序。我没有包括实际代码,因为我希望有人能从概念上为我指明正确的方向,而不是为我编写代码。

我现在的流程是这样的: 单击命令按钮,子例程遍历用户窗体中的每个输入字段。对于每个输入字段,它调用另一个子例程从输入字段中获取值。该子例程然后调用另一个子例程来更新适当的书签。然后控制returns到命令按钮调用的主子例程,处理下一个输入字段。

我在第二个获取字段值的子例程中检查空 field/omitted 响应。使用 If 语句,我可以启动消息框并在存在空值时退出 sub。但这只会退出二级潜艇;单击命令按钮时启动的主子继续 运行 并处理剩余的输入字段。我也想停止这个过程,这样用户在修复错误后必须再次单击命令按钮。我不想执行终端结束命令,因为这会清除用户窗体,我将不得不从头开始。如何在不关闭整个程序的情况下停止两个 运行ning 子例程?

提前致谢,

您可以将您的第二个子例程更改为一个函数,该函数 returns 一个表示成功或失败的布尔值,如果失败则在您的主例程中退出。