【问题标题】:How to send worksheet in email body?如何在电子邮件正文中发送工作表?
【发布时间】:2022-03-29 15:03:50
【问题描述】:

有什么方法可以附加工作表并将其作为电子邮件正文发送。

以下 VBA 代码将工作表作为附件发送。

如何在电子邮件正文中发送工作表?

Sub Email()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim wbTemp As Workbook
    Dim strFilename As String
    Dim Sendrng As Range
    
    ThisWorkbook.Worksheets("Test Worksheet").Copy
    
    
    Set wbTemp = ActiveWorkbook
    
    
    wbTemp.SaveAs ThisWorkbook.Path & "/" & "TestWb", XlFileFormat.xlOpenXMLWorkbook
    
    strFilename = wbTemp.FullName
    
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    With OutMail
        .To = "test@testdomain.com"
        .CC = ""
        .BCC = ""
        .Subject = "Test Email"
        .Body = ""
        .Attachments.Add strFilename
        .display
    End With
    
    End With
    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing
    
    wbTemp.Close
    
    Kill strFilename
    
End Sub

【问题讨论】:

标签: vba excel


【解决方案1】:
Private Sub CommandButton1_Click()

    Dim AWorksheet As Worksheet
    Dim Sendrng As Range
    Dim rng As Range

    On Error GoTo StopMacro

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

     Set Sendrng = Worksheets("Sheet1").Range("A1:g15")

     Set AWorksheet = ActiveSheet

     With Sendrng
    .Parent.Select
    Set rng = ActiveCell
     .Select
      ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope
            With .Item
                .To = "recipient"
                .CC = ""
                .BCC = ""
                .Subject = "My subject"
                .Send
            End With

        End With
              rng.Select
    End With

        AWorksheet.Select

Sheet1.Activate
Range("c2:c3").ClearContents
Range("e2:e3").ClearContents
Range("c5") = ""
Range("B8:b10").ClearContents
Range("c8:c10").ClearContents
Range("d8:d10").ClearContents
Range("e8:e10").ClearContents
Range("f8:f10").ClearContents
Range("g8:g10").ClearContents
Range("b13") = ""



 StopMacro:
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    ActiveWorkbook.EnvelopeVisible = False

End Sub

您应该添加将其复制到此的代码。请原谅这里不需要的所有废话,我只是复制并粘贴了一个我一直在使用的

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多