Word VBA - 如果人们没有使用文档之前保存填写必填字段,如何阻止他们保存表单?



>我目前正在制作表单,并试图阻止某人执行"另存为"或"保存"(如果未填写所有必填字段(。下面的示例只是工程师姓名的一个字段。目的是,如果用户在这种情况下没有填写名为"EngName"的表单字段,则文档将显示一条错误消息"保存已取消,需要工程师姓名"。我想我很接近,但不了解 VBA,希望得到任何帮助。

Public WithEvents App As Word.Application
Private Sub Document_Open()
Set App = Word.Application
End Sub
Private Sub App_DocumentBeforeSave(ByVal Doc as Document, SaveAsUI AS Boolean, Cancel As Boolean)
With ActiveDocument.FormFields("EngPhone")
If Len(.Results) < 1 Then Cancel = True
MsgBox ("Save Cancelled, Engineer Name Required")
End If
End With
End Sub

尝试:

Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
If Trim(ActiveDocument.FormFields("EngPhone").Result) = "" Then
Cancel = True
MsgBox ("Save Cancelled, Engineer Name Required")
End If
End Sub

您需要将上述代码添加到"ThisApplication"类模块中,并且您仍然需要实例化代码,该代码位于普通代码模块中。有关更多详细信息,请参阅:https://wordmvp.com/FAQs/MacrosVBA/AppClassEvents.htm

最新更新