我有一个Word模板创建,我需要做到以下几点:
注:基本模板将根据他们的数据被用于多个收件人。基本上,它是几乎相同的功能,这个词对应标签满足,仅定制。此外,VBA代码是在Excel工作表,由于存在的收件人。
这是我的代码,一切正常,直到你得到你应粘贴在Outlook邮件的正文内容的线,因为这不粘贴内容,几乎贴不起作用。
Sub EnviarRespuestas()
Dim editor, OutApp, Correo As Object
Dim i, j, celda As Integer
Dim pag1 As Worksheet
Set pag1 = ActiveWorkbook.Worksheets("send messages")
wArch = "path of the template"
celda = 11
'create Document of template
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=wArch, NewTemplate:=False, DocumentType:=0
'Modify document with data of Excel
For k = 6 To 8
With objWord.Selection.Find
.Text = Sheet1.Range("A" & k).Text
.Replacement.Text = Sheet1.Range("C" & k).Text
.Execute Replace:=2
End With
Next k
objWord.Activate
'Copy content of the template modify
objWord.Selection.WholeStory
objWord.Selection.End = objWord.Selection.End - 1
objWord.Selection.Copy
'validate if exists recipients in sheets of excel
Do While Not pag1.Range("J" & celda).Value = ""
Set Correo = OutApp.CreateItem(0)
With Correo
.To = pag1.Range("J" & celda).Value
.Subject = "CURSO: " & pag1.Range("C6").Text
'try of paste content in body
.BodyFormat = olFormatRichText
Set editor = .GetInspector.WordEditor
editor.Content.Paste
.Display
celda = celda + 1
End With
Loop
End Sub
如果有人能帮助我,我将非常感激。
你几乎得到了它,尽量显示你粘贴之前。还看到我所做的变化不大
下面我举例我使用wdFormatOriginalFormatting保持Word文档和签名的格式
Dim Correo As Object
Set Correo = OutApp.CreateItem(0)
Set objWord = Correo.GetInspector.WordEditor
With Correo
.To = pag1.Range("J" & celda).Value
.Subject = "CURSO: " & pag1.Range("C6").Text
.Display 'here
objWord.Paragraphs(1).Range. _
PasteAndFormat Type:=wdFormatOriginalFormatting
End With