gpt4 book ai didi

excel - 用剪贴板中的图片替换电子邮件中的文本

转载 作者:行者123 更新时间:2023-12-02 11:33:23 25 4
gpt4 key购买 nike

我每天都会发送一份报告。
其中有一个链接到某个范围的图像,我需要将其粘贴到电子邮件中并发送。
我已将电子邮件另存为 Outlook 模板文件,并在需要时根据需要进行修改。
我的代码是从 Excel 运行的。
我创建一个 Outlook 对象并从 .oft 模板文件打开 Outlook 电子邮件,然后我想找到标识 rune 本 (在此处插入图像) 并将其替换为 Excel 中的链接图像,该图像已从剪贴板复制。 我正在尝试将其添加为 InLineShape,以便它在电子邮件正文中正常运行。
我一直在尝试使用电子邮件正文中定义的 WordEditor 来完成此操作。
我研究了 HTML 来做到这一点,但我认为 WordEditor 对象将是更好的方法。 粘贴后,我需要将比例高度设置为0.75,以便正确显示。
从那里,只需单击“发送”。

这是我的代码的快速示例:

Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookEmail = OutlookApp.CreateItemFromTemplate(templatePath)
OutlookEmail.Display 'Just for code checking
ThisWorkbook.Worksheets("Email Sheet").Pictures("Summary Email Screenshot").Copy
Set EmailText = OutlookEmail.GetInspector.WordEditor
With EmailText.Range.Find
.ClearFormatting
.Execute findText:="*INSERT IMAGE HERE*", MatchWholeWord:=True, MatchCase:=True, _
MatchWildcards:=False, ReplaceWith:="^c", Replace:=wdReplaceOne
End With

EmailText.InlineShapes(EmailText.InlineShapes.count).ScaleHeight = 75
'OutlookEmail.Send

问题出现在我发送之前的最后一行。
发生的情况是它没有作为 InLineShape 插入,而只是一个形状,以便它 float 在文本之上。
我需要它作为 InLineShape,以便图像后的内容向下移动并显示,而不是被它覆盖。 我已经在论坛上搜索了一段时间试图找到答案,但无济于事。
我非常精通 Excel VBA,但这是我第一次尝试 Outlook 和 Word VBA,所以请耐心等待。

最佳答案

默认情况下,粘贴图像时,Word 将使用“文件/选项/高级”的“剪切、复制和粘贴”部分中的“插入/粘贴图片”设置。因此,在某些机器上,图像可能会粘贴为 InlineShape,而在其他机器上可能会粘贴为 Shape。

如果您只是粘贴代码然后使用 PasteSpecial可以使用 wdFloatOverText 或 wdInLine 的相应 WdOLEPplacement 枚举值来指定内联或文本换行。

由于粘贴命令来自 ^c替换文本 此方法不适用于这种情况。这意味着需要更改选项设置。并且,为了使其用户友好,应在代码末尾将其改回。

这里有一些示例代码,演示如何检查当前选项,根据需要更改它,并在过程结束时重置。我不熟悉通过 Outlook 对象模型使用 Word,但我认为我已经正确实例化了 Word.Application 的对象。以便在 Excel 或 Outlook 中执行的 VBA 知道什么 Options意味着。除了最后一行之外,这应该位于 Set 之间和With在问题的代码示例中。

Dim wrapType As Long
Dim wordApp as Object

Set wordApp = EMailText.Application
wrapType = wordApp.Options.PictureWrapType
If wrapType <> wdWrapMergeInline Then
wordApp.Options.PictureWrapType = wdWrapMergeInline
End If
'Do other things, then reset

wordApp.Options.PictureWrapType = wrapType

关于excel - 用剪贴板中的图片替换电子邮件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com