2014-03-07 73 views
2

我一直在嘗試整個早上獲取此VBA腳本,以將我的活動Excel文檔附加到自動生成的Outlook郵件。如果我將文件路徑聲明爲字符串並附加它,一切正常。除了我想附加當前Excel文檔的完整文件路徑而不是使用靜態字符串值。如何將活動Excel工作簿附加到電子郵件

這裏是我的代碼:

Private Sub CommandButton1_Click() 
    Dim OutApp As Object 
    Dim OutMail As Object 
    Dim strbody As String 
    Dim sAttach As String 
    Dim sTo As String 
    Dim sCC As String 



    'For To field 
    Set emailRng = Worksheets("Pre-Clearance Email").Range("E11:J14") 

    For Each cl In emailRng 
     sTo = sTo & ";" & cl.Value 
    Next 

    sTo = Mid(sTo, 2) 

    'For CC field 
    Set emailRngCC = Worksheets("Pre-Clearance Email").Range("E16:J19") 

    For Each cl In emailRngCC 
     sCC = sCC & ";" & cl.Value 
    Next 

    sCC = Mid(sCC, 2) 



    Set OutApp = CreateObject("Outlook.Application") 
    Set OutMail = OutApp.CreateItem(0) 

    'variable declarations for email body and attachment 
    strbody = "<BODY style=font-size:11pt;font-family:Calibri>Good Morning;<p>Please see the attached aliases for validation. Please let me know if you have any questions.<p>Thank you.</BODY>" 
    sAttach = "K:\CRM Support\Data\Systematic Trade Recon (1).xlsm" 

    'the below code adds a users default signature to the email 
    With OutMail 
     .Display 
    End With 
     signature = OutMail.HTMLBody 

    With OutMail 
     .to = sTo 
     .CC = sCC 
     .Subject = "STR Pre-Clearance" 
     .HTMLBody = strbody & signature 
     .Attachments.Add (ActiveDocument.FullName) 

     '.Attachments.Add sAttach 
     .Display 'Instead of .Display, you can use .Send to send the email _ 
        or .Save to save a copy in the drafts folder 
    End With 

編譯器給我在這行錯誤:

.Attachments.Add (ActiveDocument.FullName) 

我做了一些研究,並試圖解決自己的問題,但我只是無法弄清楚如何讓這個腳本將活動文件附加到這個Outlook消息中。正如你可以通過我的代碼看到的,我的備份選項只是使用字符串變量和靜態地址來附加文件,但我寧願讓這個腳本比這更通用。

這裏是我發現的網站,給了我這個想法,開始與一個:Here

+1

它'ActiveWorkbook.Path& 「\」 &ActiveWorkbook.Name' –

+0

'.Attachments.Add(ActiveWorkbook.FullName)'對我來說是什麼工作。它看起來像「ActiveWorkbook.Path」試圖鏈接整個目錄,這是相當大的。 > _ <感謝您的提示,我現在意識到我應該使用'ActiveWorkbook'。 – FluffyKittens

+1

如果我錯了,請糾正我,但不是'ActiveWorkbook.FullName'與'ActiveWorkbook.Path&「\」&ActiveWorkbook.Name'相同? – FluffyKittens

回答

7

好了,經過一番更多的努力我能得到的工作簿完美連接。下面是我在orginial代碼到發件對象進行修改:我想我會回答我的問題,因此不會沒有技術的答案縈繞

With OutMail 
     .to = sTo 
     .CC = sCC 
     .Subject = "STR Pre-Clearance" 
     .HTMLBody = strbody & signature 
     .Attachments.Add (ActiveDocument.FullName) 'this is the correction I made 
     .Display 

。也許它會在未來幫助別人。

1

的修復實際上應該是:

With OutMail 
    .To = sTo 
    .CC = CC 
    .Subject = "STR Pre-Clearance" 
    .HTMLBody = strbody & signature 
    .Attachments.Add (ActiveWorkbook.FullName) 'should be workbook not document 
    .Display 'or .Send 
+0

對不起,我剛看到共享的評論,它可能是ActiveWorkbook.FullName – user6654783

+0

這一個作品,謝謝 –

相關問題