Excel 通过电子邮件发送活动工作簿的压缩版本

Excel 通过电子邮件发送活动工作簿的压缩版本,excel,vba,Excel,Vba,我想使用Outlook通过电子邮件发送工作簿的压缩副本。 如何扩展下面的宏,使其附加压缩工作簿 Sub EmailWorkbook() Dim OL As Object, EmailItem As Object Dim Wb As Workbook Application.ScreenUpdating = False Set OL = CreateObject("Outlook.Application") Set EmailItem = OL.CreateItem(olMailItem) S

我想使用Outlook通过电子邮件发送工作簿的压缩副本。 如何扩展下面的宏,使其附加压缩工作簿

Sub EmailWorkbook()

Dim OL As Object, EmailItem As Object
Dim Wb As Workbook

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Wb = ActiveWorkbook
Wb.Save
With EmailItem
    .Subject = "COB" & Format(Range("yesterday"), "ddMMMyy")
    '.Body = ""
    .To = "somewhere@maildomain.com"
    '.Cc = ""
    '.Bcc = ""
    .Importance = olImportanceNormal
    .Attachments.Add Wb.FullName
    .Display
End With

Application.ScreenUpdating = True

Set Wb = Nothing
Set OL = Nothing

End Sub
下载并安装,然后修改现有代码,如下所示:

Sub EmailWorkbook()
    Dim OL As Object, EmailItem As Object
    Dim xlWbName As String, xlWbPath As String, ext As String

    'Set xlWb file name and path
    xlWbName = "ENTER FILE NAME HERE"
    xlWbPath = "C:\ENTER\FILE\FOLDER\HERE"
    ext = "ENTER FILE EXTENSION HERE"

    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)

    'Make sure file xlWbName.ext is closed or close it before running the next line
    Shell "C:\Program Files\7-Zip\7z.exe" & " a -tzip """ & xlWbPath & "\" & xlWbName & ".zip"" """ & xlWbPath & "\" & xlWbName & ext & """"

    With EmailItem
        .Subject = "Enter subject here"
        '.Body = ""
        .To = "somewhere@maildomain.com"
        '.Cc = ""
        '.Bcc = ""
        .Importance = olImportanceNormal
        .Attachments.Add xlWbPath & "\" & xlWbName & ".zip"
        .Display
    End With

    Set OL = Nothing
End Sub

我测试了上面的代码,它成功地附加了压缩文件。

Ron在他的站点中介绍了它。查看此链接如果您感兴趣,还有另一种使用Winzip的方法吗?谢谢您从该链接获得了它。干杯。Gr8:那为什么不粘贴你得到的代码并接受它作为答案呢?为了让您知道您可以回答自己的问题,我们甚至强烈建议您查看此链接并接受它。它将帮助其他有同样问题的人:
Sub EmailWorkbook()
    Dim OL As Object, EmailItem As Object
    Dim xlWbName As String, xlWbPath As String, ext As String

    'Set xlWb file name and path
    xlWbName = "ENTER FILE NAME HERE"
    xlWbPath = "C:\ENTER\FILE\FOLDER\HERE"
    ext = "ENTER FILE EXTENSION HERE"

    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)

    'Make sure file xlWbName.ext is closed or close it before running the next line
    Shell "C:\Program Files\7-Zip\7z.exe" & " a -tzip """ & xlWbPath & "\" & xlWbName & ".zip"" """ & xlWbPath & "\" & xlWbName & ext & """"

    With EmailItem
        .Subject = "Enter subject here"
        '.Body = ""
        .To = "somewhere@maildomain.com"
        '.Cc = ""
        '.Bcc = ""
        .Importance = olImportanceNormal
        .Attachments.Add xlWbPath & "\" & xlWbName & ".zip"
        .Display
    End With

    Set OL = Nothing
End Sub