Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Excel VBA将文件附加到电子邮件_Excel_Vba - Fatal编程技术网

使用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*大家好,谢谢您的评论!我尝试声明工作簿和工作表,但仍然出现错误,因此我尝试添加文件扩展名,现在可以使用了!非常感谢你的帮助,这让我抓狂:)