OLEObject 是 Microsoft Word 文档对象。我希望文件的内容作为正文中的文本。 Word 文档还包含图像。
执行此操作的代码行有问题:
Option Explicit
Sub Genera_email()
Dim App As Object
Dim MailItem As Object
Set App = CreateObject("Outlook.Application")
Set MailItem = App.CreateItem(0)
With MailItem
.BCC = Selection.Value
.Subject = "Text object"
.Body = Worksheets(2).OLEObjects(1) ' the problem line
.Display
End With
Set MailItem = Nothing
Set App = Nothing
Selection.Offset(0, 1).Select
Selection.Value = "V"
Selection.Offset(1, -1).Select
End Sub
我使用 Microsoft Office 2016。
这行代码的正确语法是什么?
最佳答案
如果您想将内容包含在正文中,则必须将文件复制到临时文件夹中,并在使用新对象打开后,复制内容并粘贴到正文中。 要将 OLE 对象保存在文件夹中,您可以使用如下代码:
Worksheets(2).OLEObjects(1).Copy
CreateObject("Shell.Application").Namespace(ActiveWorkbook.Path).Self.InvokeVerb "Paste"
然后创建 Microsoft Word 文档对象并复制内容。
如果您想附加。
Option Explicit
Sub Genera_email()
Dim App As Object
Dim MailItem As Object
Set App = CreateObject("Outlook.Application")
Set MailItem = App.CreateItem(0)
With MailItem
.BCC = Selection.Value
.Subject = "Text object"
.Body = "Say Hello"
.Attachments.Add Worksheets(2).OLEObjects(1)
.Display
End With
Set MailItem = Nothing
Set App = Nothing
Selection.Offset(0, 1).Select
Selection.Value = "V"
Selection.Offset(1, -1).Select
End Sub
关于excel - 使用 Excel VBA 将 Excel 工作簿中的 OLEObject 内容放入 Outlook 电子邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818149/