当前位置:  开发笔记 > 编程语言 > 正文

提交Word表单后如何添加成功消息?

如何解决《提交Word表单后如何添加成功消息?》经验,为你挑选了1个好方法。

我有一个锁定的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 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,但这对我目前的任务来说是必要的,所以任何帮助都会受到赞赏.



1> Cindy Meiste..:

在我看来,在程序结束时添加一个MsgBox行应该可以完成这项工作.例如:

MsgBox "Document sent as e-mail"

如果您愿意,可以格式化消息,例如更改标题,按钮和图标.有关详细信息,请在VBA语言帮助中查找该方法.

我还发现您的代码可能存在问题.在一开始你有:

On Error Resume Next

这基本上会关闭所有错误 - 如果出现任何问题,将不会发出通知.这通常是一个非常糟糕的想法.如果使用它,它应该只有几行,然后你要么恢复正常的错误通知,要么打开错误处理.我假设它最初在您的代码中有关启动Outlook应用程序的部分.那很好,它或多或少标准......但是在结束之后如果你应该添加一行如:

On Error GoTo 0

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有