Excel 选择Word文档的内容,并使用VBA将其粘贴到Outlook的正文中
我创建了Word模板,需要执行以下操作:Excel 选择Word文档的内容,并使用VBA将其粘贴到Outlook的正文中,excel,vba,outlook,ms-word,Excel,Vba,Outlook,Ms Word,我创建了Word模板,需要执行以下操作: 基于该模板创建新文档 修改新模板的某些数据并复制其所有内容 打开Outlook并将模板粘贴到邮件正文中 将邮件发送给相应的收件人 注意:基本模板将根据其数据用于多个收件人。基本上,它与“文字对应”选项卡实现的功能几乎相同,只是自定义的。此外,VBA代码位于excel工作表中,因为存在收件人 这是我的代码,一切都很好,直到你到达一行,你应该在Outlook邮件的正文中粘贴内容,因为这不会粘贴内容,实际上粘贴不起作用 Sub EnviarRespuestas
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
如果有人能帮助我,我将不胜感激。您差一点就拿到了,请在粘贴之前先显示一下。也看到了我做的一些小改变
下面的示例是我用来保持word文档和签名格式的
非常感谢您的帮助,如果我在发送邮件之前先显示邮件会有所帮助,但我需要直接发送邮件而不显示邮件。如果你能继续帮助我,那将是一个巨大的帮助和快乐。否则,我必须先显示,然后发送,这会导致Outlook消息界面显示片刻,然后关闭。带有“此处显示”的对应词。段落(1)。范围。\uPasteAndFormat类型:=wdFormatOriginalFormatting。发送结束于
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