Vba 如何在提交Word表单后添加成功消息?
我有一个Word表单,它被锁定,并且只有用户可以填写的字段。当它们到达终点时,有一个提交按钮,它是一个活动的x控件,代码如下:Vba 如何在提交Word表单后添加成功消息?,vba,ms-word,Vba,Ms Word,我有一个Word表单,它被锁定,并且只有用户可以填写的字段。当它们到达终点时,有一个提交按钮,它是一个活动的x控件,代码如下: Private Sub CommandButton1_Click() Dim bStarted As Boolean Dim oOutlookApp As Outlook.Application Dim oItem As Outlook.MailItem On Error Resume Next If Len(ActiveDocument.Path) = 0 The
Private Sub CommandButton1_Click()
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
On Error Resume Next
If Len(ActiveDocument.Path) = 0 Then
MsgBox "Document needs to be saved first"
Exit Sub
End If
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
.To = "email address"
.Subject = "New subject"
'Add the document as an attachment, you can use the .displayname property
'to set the description that's used in the message
.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue, _
DisplayName:="Document as attachment"
.Send
End With
If bStarted Then
oOutlookApp.Quit
End If
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub
我将Outlook库添加到引用中,因此当我单击按钮时,它会按预期发送电子邮件,并将Word文档作为附件。问题是没有消息告诉用户它已经工作了。我担心用户会一次又一次地点击按钮发送多封电子邮件。我通常不做VBA,但这对我当前的任务是必要的,所以任何帮助都将不胜感激 在我看来,在过程的末尾添加一行MsgBox应该可以完成这项工作。例如:
MsgBox "Document sent as e-mail"
如果愿意,您可以设置消息格式,如更改标题、按钮和图标。有关详细信息,请在VBA语言帮助中查找该方法
我还发现您的代码可能存在问题。在刚开始时,您有:
On Error Resume Next
这基本上关闭了所有错误-如果出现任何错误,将不会发出通知。这通常是一个非常糟糕的主意。如果使用,它应该只用于几行,然后恢复正常的错误通知或启用错误处理。我假设它最初出现在关于启动Outlook应用程序的代码中。那很好,这或多或少是标准的。。。但在结尾之后,如果您应该添加一行,例如:
On Error GoTo 0
在我看来,在过程的末尾添加一行MsgBox应该可以完成这项工作。例如:
MsgBox "Document sent as e-mail"
如果愿意,您可以设置消息格式,如更改标题、按钮和图标。有关详细信息,请在VBA语言帮助中查找该方法
我还发现您的代码可能存在问题。在刚开始时,您有:
On Error Resume Next
这基本上关闭了所有错误-如果出现任何错误,将不会发出通知。这通常是一个非常糟糕的主意。如果使用,它应该只用于几行,然后恢复正常的错误通知或启用错误处理。我假设它最初出现在关于启动Outlook应用程序的代码中。那很好,这或多或少是标准的。。。但在结尾之后,如果您应该添加一行,例如:
On Error GoTo 0
您可以添加在.send或ooutlookapp之后发送的msgboxMessage。退出您可以添加在.send或ooutlookapp之后发送的msgboxMessage。退出您的邮件发送的MsgBox怎么样?您的邮件发送的MsgBox怎么样?