2016-05-16 24 views
0

我正在Excel 2013/2016中運行發票程序。目的是創建發票,另存爲PDF,創建郵件並附上PDF - 完全自動化。從VBA運行郵件時附件丟失

我的代碼是由線打破:

objMessage.AddAttachment = GemFilSom(鏈接到lib和文件)

這裏的是代碼:

Private Sub CommandButton2_Click() 

Dim Sender As String 
Dim Modtager As String 
Dim Emne As String 
Dim Tekst As String 
Dim Vedhaft As String 
Dim Tekst1 As String 
Dim Tekst2 As String 
Dim Tekst3 As String 
Dim Tekst4 As String 
Dim Tekst6 As String 
Dim Fulltekst As String 
Dim Pw As String 
Dim Port As String 
Dim SMTPUdbyder As String 
Dim GemFilSom As String 

Const cdoSendUsingPickup = 1 
Const cdoSendUsingPort = 2 
Const cdoAnonymous = 0 
Const cdoBasic = 1 
Const cdoNTLM = 2 




    Sheets("Udskrift").Activate 

' ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, _ 
'  IgnorePrintAreas:=False 


GemFilSom = Worksheets("FakturaList").Range("L8").Value 'lib + filename 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=GemFilSom _ 
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=False 

Afsender = Worksheets("FakturaList").Range("L23").Value 'from 
Modtager = Worksheets("FakturaList").Range("L24").Value 'to 
Emne = Worksheets("FakturaList").Range("L25").Value   'Subject 
Tekst1 = Worksheets("FakturaList").Range("L14").Value  'Bodytekst 
Tekst2 = Worksheets("FakturaList").Range("L15").Value  ' " 
Tekst3 = Worksheets("FakturaList").Range("L16").Value  ' " 
Tekst4 = Worksheets("FakturaList").Range("L17").Value  ' " 
Tekst5 = Worksheets("FakturaList").Range("L18").Value  ' " 
Tekst6 = Worksheets("FakturaList").Range("L19").Value  ' " 
Pw = Worksheets("FakturaList").Range("L22").Value   'Password 
Port = Worksheets("FakturaList").Range("L31").Value   'SMTP Port 
SMTPUdbyder = Worksheets("FakturaList").Range("L32").Value 'SMTP Server 

Vedhaft = Worksheets("FakturaList").Range("L27").Value  'Attachment 'Lib+Filename 

Fulltekst = Tekst1 & vbNewLine & vbNewLine & vbNewLine & vbNewLine & Tekst2 & vbNewLine & Tekst3 & vbNewLine & vbNewLine & Tekst4 & vbNewLine & vbNewLine & Tekst5 & vbNewLine & Tekst6 
'Bodytext 

Set objMessage = CreateObject("CDO.Message") 
objMessage.Subject = Emne 
objMessage.From = Afsender 
objMessage.To = Modtager 
objMessage.Bcc = Afsender 
**objMessage.AddAttachment = GemFilSom** ' This line doesn't work and do not 'attach 
objMessage.TextBody = Fulltekst 


***objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/Attachment") = GemFilSom***  objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPUdbyder 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = Afsender 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Pw 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 

objMessage.Configuration.Fields.Update 

objMessage.Send 

End Sub 

我已經花了4天測試谷歌和什麼這樣....任何人都可以請幫助? 我有VBA

最佳reagsrd 邁克爾

+0

給我:運行時錯誤'5':無效的過程調用ot參數 –

+0

抱歉沒有注意並錯過了CDO部分 - 'objMessage.AddAttachment GemFilSom'應該可以工作(不帶'=')https:// blogs.technet.microsoft.com/heyscriptingguy/2004/11/29/how-can-i-attach-a-file-to-an-email-sent-using-cdo/ –

+0

好附件解決和工作....刪除該行:*** objMessage.Configuration.Fields.Item(「http://schemas.microsoft.com/cdo/configuration/Attachment」)= GemFilSom ***並更改了Tim所建議的CDO部分 - THKS A束!! –

回答

0

objMessage.AddAttachment是一個方法的基本理解,但你現在想分配值它,而不是通過一個參數傳遞給它。

而不是

objMessage.AddAttachment = GemFilSom 

正試圖分配的GemFilSomobjMessage.AddAttachment值(這是行不通的,因爲這不是一個屬性)使用方法:

objMessage.AddAttachment GemFilSom 

哪個通過GemFilSom作爲該方法的參數,該方法將依次將該對象附加到郵件項目。