2016-11-17 2 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 

вы заменяете весь диапазон слова дока в сообщении с изображением. Вместо этого вам нужно указать, в каком диапазоне вы хотите вставить это. Это должно быть указано после вашего текста:

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

Это работает! спасибо –

Смежные вопросы