2016-11-17 512 views
0

我是vba編碼新手,我遇到了我的宏問題。我試圖將Excel中的範圍複製到Outlook郵件中,並在主體中添加文本。但是,我的代碼添加了文本,然後將圖片粘貼到上面。我怎樣才能得到它粘貼在文本下?VBA Excel圖片粘貼在Outlook郵件中的文本

這裏是我的代碼:

Dim OutApp As Object 
Dim outMail As Object 
Dim myFileList(1) As String 
Dim i As Long 

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

Set RngCopied = Worksheets("Daily volume summary").Range("VolumeRange") 

myFileList(0) = "Y:xyz\sales.pdf" 
myFileList(1) = "Y:xyz\sales.xlsx" 


'On Error Resume Next 
With outMail 
    .To = "[email protected]" 
    .CC = "[email protected]" 
    .BCC = "" 
    .Subject = "PBC Daily Sales " & Format(Date, "mm/dd/yyyy") 
    .Body = "Good morning," & vbNewLine & vbNewLine & "Attach is the Daily Sales report for " & Format(Date, "dddd,mmmm,dd,YYYY") & "." & "<br>" 

'Copy range of interest 

Dim r As Range 

Set r = Worksheets("Daily volume summary").Range("VolumeRange") 
r.Copy 

'Get its Word editor 
outMail.Display 
Dim wordDoc As Word.Document 
Set wordDoc = outMail.GetInspector.WordEditor 


'To paste as picture 
wordDoc.Range.PasteAndFormat wdChartPicture 
Dim shp As Object 
    For Each shp In wordDoc.InlineShapes 
    shp.ScaleHeight = 60 
    shp.ScaleWidth = 60 
    Next 

    For i = 0 To UBound(myFileList) 
    .Attachments.Add myFileList(i) 
    Next 

    .Send 
End With 
On Error GoTo 0 

Set outMail = Nothing 
Set OutApp = Nothing 
End Sub 

回答

1

在行:

wordDoc.Range.PasteAndFormat wdChartPicture 

你與你的圖片替換消息的Word文檔的整個範圍。相反,你需要注意你想要粘貼的範圍。這應該把它放在你的文字後面:

wordDoc.Range(start:=wordDoc.Range.End - 2).PasteAndFormat wdChartPicture 
+0

它的工作原理!謝謝 –