我目前正在做一个表单,如果没有填写所有必需的字段,我将尝试阻止一个人执行“保存为”或“保存”。下面的例子只是一个工程师名称的字段。这样做的意图是,如果用户在本例中没有填写名为"EngName“的表单字段,那么文档将显示一个错误消息"Save,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发布于 2020-06-24 22:30:57
尝试:
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
https://stackoverflow.com/questions/62563742
复制相似问题