如何將一個 Excel 工作簿中的所有工作表作為單獨的 Outlook 電子郵件批量發送

立即分享:

如果您希望將 Excel 工作簿中的所有工作表作為單獨的 Outlook 電子郵件發送,可以使用本文介紹的方法。 它可以指導您批量實現,無需麻煩地一一發送。

在我之前的post “將Excel工作表作為Outlook電子郵件發送的2種快速方法”,您可以了解兩種將一張 Excel 工作表作為電子郵件發送的方法。 如果您希望將一個工作簿中的所有工作表作為單獨的電子郵件批量發送,請使用該 p 中提到的兩種方法之一ost 會相當乏味和麻煩。 因此,這裡我們將介紹另一種方法,可以快速實現這種“批量發送”。

將一個 Excel 工作簿中的所有工作表作為單獨的 Outlook 電子郵件批量發送

將一個 Excel 工作簿中的所有工作表作為單獨的電子郵件批量發送

  1. 首先,您應該打開源 Excel 工作簿。
  2. 然後,進入Excel窗口後,您應該點擊“Alt + F11”快捷鍵。
  3. 接下來,將顯示另一個名為“Microsoft Visual Basic for Applications”的窗口。
  4. 在其中,您必須打開未使用的模塊或插入新模塊。
  5. 隨後,您可以將以下VBA代碼複製到該模塊中。
Sub SendEachWorksheet_inOutlookEmail()
    Dim objWorksheet As Excel.Worksheet
    Dim objRange As Excel.Range
    Dim objTempWorkbook As Excel.Workbook
    Dim objTempWorksheet As Excel.Worksheet
    Dim strTempFolder As String
    Dim strHTMLFile As String
    Dim objHTMLFile As Object
    Dim objFileSystem As Object
    Dim objTextStream As Object
    Dim objOutlookApp As Outlook.Application
    Dim objMail As Outlook.MailItem
 
    For Each objWorksheet In ActiveWorkbook.Sheets
        Set objRange = objWorksheet.UsedRange
        objRange.Copy
 
        Set objTempWorkbook = Excel.Application.Workbooks.Add(1)
        Set objTempWorksheet = objTempWorkbook.Sheets(1)
        With objTempWorksheet.Cells(1)
             .PasteSpecial xlPasteValues
             .PasteSpecial xlPasteColumnWidths
             .PasteSpecial xlPasteFormats
        End With
 
        strTempFolder = CStr(Environ("USERPROFILE")) & "\AppData\Local\Temp"
        strHTMLFile = strTempFolder & "\Temp" & Format(Now, "yyyymmddhhmmss") & ".htm"
        Set objHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, strHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address)
        objHTMLFile.Publish (True)
 
        Set objOutlookApp = CreateObject("Outlook.Application")
        Set objMail = objOutlookApp.CreateItem(olMailItem)
 
        Set objFileSystem = CreateObject("Scripting.FileSystemObject")
        Set objTextStream = objFileSystem.OpenTextFile(strHTMLFile)
        objMail.HTMLBody = objTextStream.ReadAll
 
        'Change the email details as per your needs
        With objMail
             .To = "test@datanumen.com"
             .Subject = objWorksheet.Name
             .Display
        End With
 
        objTextStream.Close
        objTempWorkbook.Close False
        Kill strHTMLFile
    Next
End Sub

VBA 代碼 - 將一個 Excel 工作簿中的所有工作表作為單獨的 Outlook 電子郵件批量發送

  1. 之後,您可以通過按 F5 鍵或單擊工具欄中的“運行”圖標來觸發該宏。
  2. 與此 Excel 工作簿中的所有工作表對應的電子郵件將立即顯示在 Outlook 中。
  3. 最後,您可以重新檢查所有電子郵件的詳細信息,最後單擊“發送”按鈕將電子郵件發送出去。

如果沒有備份,請應用有效的恢復工具

越來越多的用戶已經認識到數據備份的重要性。 只要您備份了 PST 文件, PST恢復 損壞後會很簡單。 但是,如果沒有有效且最新的 PST 備份,您別無選擇,只能藉助外部 PST 修復工具,例如 DataNumen Outlook Repair。 它可以輕鬆修復受損的 PST 文件。

作者簡介:

Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 恢復SQL 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。