我需要支持来清除VBA宏中Outlook中的Pdf文件附件的运行时错误

问题描述

此带有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

如果可行,您可以找到其他任何临时路径(临时,文档等)