使用Excel VBA将文件附加到电子邮件
我正在尝试将工作簿中的两个工作表作为单独的文件保存到公司网络位置,然后将这些文件附加到电子邮件中使用Excel VBA将文件附加到电子邮件,excel,vba,Excel,Vba,我正在尝试将工作簿中的两个工作表作为单独的文件保存到公司网络位置,然后将这些文件附加到电子邮件中 Sub Test_Module_Peter() ' Dim OutApp As Object Dim OutMail As Object Dim SPpath As String Dim SCpath As String Dim SPfilename As String Dim SCfilename As String Dim SPFullFilePath As String Dim SCFullF
Sub Test_Module_Peter()
'
Dim OutApp As Object
Dim OutMail As Object
Dim SPpath As String
Dim SCpath As String
Dim SPfilename As String
Dim SCfilename As String
Dim SPFullFilePath As String
Dim SCFullFilePath As String
Dim wb As Workbook
Dim Cell As Range
Application.ScreenUpdating = False
' export a copy of PER SP Form
Sheets("PER SP").Select
Sheets("PER SP").Copy
' Remove formulas from SP sheet
With ActiveSheet.UsedRange
.Cells.Copy
.Cells.PasteSpecial xlPasteValues
.Cells(1).Select
End With
Application.CutCopyMode = False
' Save a copy of the SP PER Form
SPpath = "\\UKRLTD008\Company\...\...\...\2019\"
SPfilename = "TEST - PER SP ABL90_2019 " & Range("M1")
SPFullFilePath = SPpath & SPfilename
ActiveWorkbook.SaveAs filename:=SPpath & SPfilename, FileFormat:=52
ActiveWorkbook.Close SaveChanges = True
' select ABL90 Credit Claim Master Spreadsheet
For Each wb In Application.Workbooks
If wb.Name Like "ABL90 Credit Claim Master*" Then
wb.Activate
End If
Next
' export a copy of PER SC Form
Sheets("PER SC").Select
Sheets("PER SC").Copy
' Remove formulas from SC sheet
With ActiveSheet.UsedRange
.Cells.Copy
.Cells.PasteSpecial xlPasteValues
.Cells(1).Select
End With
Application.CutCopyMode = False
' Save a copy of the SC PER Form
SCpath = "\\UKRLTD008\Company\...\...\...\2019\"
SCfilename = "TEST - PER SC ABL90_2019 " & Range("M1")
SCFullFilePath = SCpath & SCfilename
ActiveWorkbook.SaveAs filename:=SCpath & SCfilename, FileFormat:=52
ActiveWorkbook.Close SaveChanges = True
' Send the SP PER Form to RMED
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.SentOnBehalfOfName = "sales@radiometer.co.uk"
.To = "laura.valenti@radiometer.co.uk"
.CC = ""
.BCC = ""
.Subject = "RLTD PER Forms " & Range("M1")
.Body = "Hi " & vbNewLine & vbNewLine & "Please find attached ABL90 PER's" & vbNewLine & vbNewLine & "Thank you"
.Attachments.Add SPFullFilePath
.Attachments.Add SCFullFilePath
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
它会保存文件,但当我尝试将其作为附件添加到电子邮件时,会出现以下错误:
运行时错误“-2147024894(80070002)”:找不到此文件。验证路径和文件名是否正确
我试图将路径和文件名一起保存为每个文件的FullFilePath,但似乎不起作用,有人能告诉我原因吗?在
范围(“M1”)
中有什么?我将从完全限定该范围开始,如thishworkbook.Worksheets(“Sheet1”).range(“M1”)
,然后重试。此外,您应该尽量避免使用选择
,复制
,粘贴
,等等。如果路径中没有文件类型,则我可以重新创建该错误,因此您可能只是缺少相应的.xls*大家好,谢谢您的评论!我尝试声明工作簿和工作表,但仍然出现错误,因此我尝试添加文件扩展名,现在可以使用了!非常感谢您的帮助,这让我抓狂:)什么在范围(“M1”)
?我将从完全限定该范围开始,如thishworkbook.Worksheets(“Sheet1”).range(“M1”)
,然后重试。此外,您应该尽量避免使用选择
,复制
,粘贴
,等等。如果路径中没有文件类型,则我可以重新创建该错误,因此您可能只是缺少相应的.xls*大家好,谢谢您的评论!我尝试声明工作簿和工作表,但仍然出现错误,因此我尝试添加文件扩展名,现在可以使用了!非常感谢你的帮助,这让我抓狂:)