问题描述
此带有Pdf附件的自动电子邮件的代码可在多台笔记本电脑上使用,但不能在我的笔记本电脑上使用。我正在使用相同版本的excel和Windows。任何人都可以支持这个问题
Sub SendWorksheet_AsPDFAttachment_OutlookEmail()
Dim objFileSystem As Object
Dim strTempFile As String
Dim objOutlookApp As outlook.application
Dim objMail As Outlook.MailItem
'Specify the worksheet name
Sheets("Sheet1").Activate
Sheets("Sheet1").Range("A1:O36").Select
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTempFile = Sheets("Sheet1").Range("B50").Value
'export the specific worksheet as PDF
Selection.ExportAsFixedFormat Type:=xlTypePDF,Filename:=strTempFile,Quality:=xlQualityStandard,IncludeDocProperties:=True,IgnorePrintAreas:=False,OpenAfterPublish:=False
'Call SaveAsPDF_Click
'Create a new email
Dim rng As Range
'Dim imagerange As Range
Set rng = Worksheets("Email Body").Range("A3:I23").SpecialCells(xlCellTypeVisible)
'Set imagerange = Worksheets("Email Body").Range("A26:I45").SpecialCells(xlCellTypeVisible)
Set objOutlookApp = CreateObject("outlook.application")
Set objMail = objOutlookApp.CreateItem(olMailItem)
objMail.Subject = "Letter of Appreciation from Office of CGPD"
objMail.To = Sheets("Sheet1").Range("B49").Value
'Attach the PDF file
objMail.Attachments.Add strTempFile
objMail.HTMLBody = RangetoHTML(rng)
'objMail.display '==>display this email
objMail.send '==>to send this email
'Delete the temp PDF file
objFileSystem.DeleteFile (strTempFile)
End Sub
解决方法
这是必须附加完整路径 ...
的问题如果strTempFile = Sheets("Sheet1").Range("B50").Value
不包含路径,则Selection.ExportAsFixedFormat
将起作用,它将在当前目录中创建文件。
objMail.Attachments.Add strTempFile
需要完整的合格文件路径。
因此,strTempFile
必须完全合格。我的意思是,尝试下一种方法:
strTempFile = thisWorbook.Path & "\" & Sheets("Sheet1").Range("B50").Value
如果可行,您可以找到其他任何临时路径(临时,文档等)