【发布时间】:2018-05-21 18:58:10
【问题描述】:
Sub ComName_Click()
Dim objOL As Object
Dim objMail As Object
On Error GoTo 1
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
With objMail
.To = [b3]
.CC = [c3]
.Body = [e3]
.Subject = [d3] & " " & [h1]
.Attachments.Add "C:\Users\File1.xlsx"
.Attachments.Add "C:\Users\File2.xlsx"
.display
End With
Exit Sub
1:
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
With objMail
.To = [b3]
.CC = [c3]
.Body = [e3]
.Subject = [d3] & " " & [h1]
.display
End With
End Sub
有时文件不存在,我需要创建不带附件的信件。 - 我可以缩短代码的“1”部分吗? - 如果文件“File1”或“File2”之一不存在,我如何升级代码,系统应该只附加其中一个可用的?
提前致谢
【问题讨论】:
-
不需要跳转到1。只有文件存在才添加附件。
If Len(Dir("C:\Users\File1.xlsx")) > 0 Then .Attachments.Add "C:\Users\File1.xlsx" -
或者,如果您想在某个文件夹中添加所有文件,只需遍历该文件夹:
For each file in folder: .Attachments.Add file: Next file。此外,如果代码仅在尝试附加不存在的文件时出错,则第一个代码块中的电子邮件和地址仍然存在。 -
@Kostas K. 非常感谢! :)
标签: vba