2011-04-11 5 views
2

첨부 파일을 추가하는 전자 메일에 편지 병합을 만들려고합니다. 기사에 설명 된 절차를 따르고 있습니다. http://word.mvps.org/FAQs/MailMerge/MergeWithAttachments.html전자 메일에 편지 병합 첨부 추가

이메일이 생성되어 올바른 이메일 주소로 전송되었지만 첨부 파일이 추가되지 않았습니다. 나는 그것을 테스트하고 올바른 파일 이름이 사용되고있다.

Sub emailmergewithattachments() 
Dim Source As Document, Maillist As Document, TempDoc As Document 
Dim Datarange As Range 
Dim i As Long, j As Long 
Dim bStarted As Boolean 
Dim oOutlookApp As Outlook.Application 
Dim oItem As Outlook.MailItem 
Dim mysubject As String, message As String, title As String 
Set Source = ActiveDocument 
' Check if Outlook is running. If it is not, start Outlook 
On Error Resume Next 
Set oOutlookApp = GetObject(, "Outlook.Application") 
If Err <> 0 Then 
    Set oOutlookApp = CreateObject("Outlook.Application") 
    bStarted = True 
End If 
' Open the catalog mailmerge document 
With Dialogs(wdDialogFileOpen) 
    .Show 
End With 
Set Maillist = ActiveDocument 
' Show an input box asking the user for the subject to be inserted into the email messages 
message = "Enter the subject to be used for each email message." ' Set prompt. 
title = " Email Subject Input" ' Set title. 
' Display message, title 
mysubject = InputBox(message, title) 
' Iterate through the Sections of the Source document and the rows of the catalog mailmerge document, 
' extracting the information to be included in each email. 
For j = 1 To Source.Sections.Count - 1 
    Set oItem = oOutlookApp.CreateItem(olMailItem) 
    With oItem 
     .Subject = mysubject 
     .Body = Source.Sections(j).Range.Text 
     Set Datarange = Maillist.Tables(1).Cell(j, 1).Range 
     Datarange.End = Datarange.End - 1 
     .To = Datarange 
     For i = 2 To Maillist.Tables(1).Columns.Count 
      Set Datarange = Maillist.Tables(1).Cell(j, i).Range 
      Datarange.End = Datarange.End - 1 
      .Attachments.Add Trim(Datarange.Text), olByValue, 1 
     Next i 
     .Send 
    End With 
    Set oItem = Nothing 
Next j 
Maillist.Close wdDoNotSaveChanges 
' Close Outlook if it was started by this macro. 
If bStarted Then 
    oOutlookApp.Quit 
End If 
MsgBox Source.Sections.Count - 1 & " messages have been sent." 
'Clean up 
Set oOutlookApp = Nothing 
End Sub 

답변

1

나는이 문제입니다 추측하고 대부분의 경우

.Attachments.Add 트림 (Datarange.Text), olByValue, 1

는 파일의 전체 경로 Datarange.Text 같다 그 파일이 존재합니까?

+0

감사합니다. 당신은 파일 이름에 집중하는 것이 옳았습니다. 나는 워드 문서를 첨부하려했지만 pdf로 변환하여 첨부했다. – kfeeney

관련 문제