By 格温泰勒 29年2021月XNUMX日,星期一
张贴在 Excel
回复 0
0
观点 2.8
投票 0
您好,我正在使用您的代码将 Excel 范围作为电子邮件附件发送,但如果我取消该范围,则会出现运行时错误。 有没有我可以添加的代码或一个 msgbox 来防止这种情况发生? 感谢下面的代码。

子发送范围()
将 xFile 调暗为字符串
将 xFormat 变暗
将 Wb 调暗为工作簿
将 Wb2 调暗为工作簿
将 Ws 调暗为工作表
将文件路径变暗为字符串
昏暗的FileName作为字符串
将 OutlookApp 调暗为对象
将 OutlookMail 调暗为对象
将 WorkRng 调暗为范围
xTitleId = "示例"
Set WorkRng = 应用程序.选择
设置 WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)

应用程序.ScreenUpdating = False
应用程序.DisplayAlerts = False
设置 Wb = Application.ActiveWorkbook
Wb.工作表.添加
设置 Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1) 复制代码
Ws.复制
设置 Wb2 = Application.ActiveWorkbook
选择案例 Wb.FileFormat
案例 xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
案例 xlOpenXMLWorkbookMacroEnabled:
    如果 Wb2.HasVBProject 然后
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    其他
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    结束如果
案例Excel8:
    xFile = ".xls"
    x格式 = Excel8
案例 xlExcel12:
    xFile = ".xlsb"
    x格式 = xlExcel12
最终选择
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(现在,“dd-mmm-yy h-mm-ss”)
设置 OutlookApp = CreateObject("Outlook.Application")
设置 OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
使用 OutlookMail
    .To = "gtest@email.com"
    .CC =“”
    .BCC =“”
    .Subject = "测试"
    .Body =“嗨。”
    .Attachments.Add Wb2.FullName
    。发送
结束
Wb2.关闭
杀死 FilePath & FileName & xFile
设置 OutlookMail = 无
设置 OutlookApp = 无
删除
应用程序.DisplayAlerts = True
Application.ScreenUpdating =真
END SUB
 
查看全文