如何批量发送一个Excel工作簿中的所有工作表作为单独的Outlook电子邮件

立即分享:

如果您想将 Excel 工作簿中的所有工作表作为单独的 Outlook 电子邮件发送,您可以使用本文介绍的方法。 它可以指导您批量实现它,而无需麻烦地逐一发送。

在我之前的帖子中将 Excel 工作表作为 Outlook 电子邮件发送的 2 种快速方法在“”,您可以学习到两种将单个 Excel 工作表通过电子邮件发送的方法。如果您希望将一个工作簿中的所有工作表批量作为单独的电子邮件发送,那么使用那篇文章中提到的两种方法中的任何一种都会相当繁琐。因此,在这里我们将介绍另一种可以快速实现“批量发送”的方法。

将一个 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. 立即,Outlook 中将显示此 Excel 工作簿中所有工作表对应的电子邮件。
  3. 最后,您可以重新检查所有电子邮件的详细信息,最后单击“发送”按钮将电子邮件发送出去。

如果没有备份,请应用强大的恢复工具

越来越多的用户已经了解数据备份的重要性。 只要您备份了 PST 文件, 太平洋标准时间恢复 损坏后会很简单。 但是,如果没有有效且最新的 PST 备份,您别无选择,只能借助外部 PST 修复工具,例如 DataNumen Outlook Repair. 它可以轻而易举地修复受损的 PST 文件。

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 恢复sql 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。