【问题标题】:Code for clearing form fields after emailing filled-out form通过电子邮件发送填写的表格后清除表格字段的代码
【发布时间】:2015-09-04 16:58:26
【问题描述】:

我创建了一个 2010 Word 文档,其中包含表单字段和一个用于通过电子邮件发送表单的命令按钮。我确实找到了在发送电子邮件后关闭文档的代码,但是我需要它在关闭文档或清除字段之前不保存更改并在关闭之前取消选中复选框。

目标是他们每次都打开一个新的表单。

他们也是一家合同公司,所以我将表格发送给他们保存到他们自己的驱动器中,否则我会保存到我们的模板中。

Private Sub CommandButton1_Click() 
    Dim OL As Object 
    Dim EmailItem As Object 
    Dim Doc As Document 
    Application.ScreenUpdating = False 
    Set OL = CreateObject("Outlook.Application") 
    Set EmailItem = OL.CreateItem(olMailItem) 
    Set Doc = ActiveDocument 
    Doc.Save 
    With EmailItem 
        .Subject = "Medical/Psych router" 
        .To = "test@email.com" 
        .Importance = olImportanceNormal 
        .Attachments.Add Doc.FullName 
        .Send 
    End With 
    Application.ScreenUpdating = True 
    Set Doc = Nothing 
    Set OL = Nothing 
    Set EmailItem = Nothing 
    Application.ActiveDocument.Close
End Sub

【问题讨论】:

    标签: vba ms-word word-2010


    【解决方案1】:

    尝试将其保存到临时文件夹 C:\Temp\,主文档将为空白,您将在 C\Temp\ 保存新文件,文件名为 Medical_Psych_router 今天的日期2015 年 6 月 18 日。 (Medical_Psych_router Jun_18_2015)

    Option Explicit
    Private Sub CommandButton1_Click()
        Dim OL As Object
        Dim EmailItem As Object
        Dim Doc As Document
        Dim sFileName As String
    
        Application.ScreenUpdating = False
    
        Set OL = CreateObject("Outlook.Application")
        Set EmailItem = OL.CreateItem(olMailItem)
        Set Doc = ActiveDocument
        sFileName = "Medical_Psych_router " & Format(Now, "mmm_dd_yyyy")
        Doc.SaveAs FileName:=("C:\Temp\") & sFileName, _
                                    FileFormat:=wdFormatDocument, _
                                    AddToRecentFiles:=True
    
            'Doc.Save
            With EmailItem
                .Subject = "Medical/Psych router"
                .To = "test@email.com"
                .Importance = olImportanceNormal
                .Attachments.Add Doc.FullName
                .Send
            End With
    
            Application.ScreenUpdating = True
    
            Set Doc = Nothing
            Set OL = Nothing
            Set EmailItem = Nothing
            Application.ActiveDocument.Close SaveChanges:=False
    
    End Sub
    

    【讨论】:

    • 但据我所知,通过电子邮件发送文档会被保存。那么我需要在代码中输入另一个命令来清除 Application.AciveDocument.Close 之前的字段。
    • 当您调用宏时,它会创建包含所有信息的临时文件并将其发送出去。您的原始文档保持空白,试一试,让我知道。
    猜你喜欢
    • 2021-04-29
    • 2011-11-08
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多