将范围复制为图像并粘贴到 Outlook 中(结果小/模糊)

Posted

技术标签:

【中文标题】将范围复制为图像并粘贴到 Outlook 中(结果小/模糊)【英文标题】:Copy range as image and paste into Outlook (results small/blurry) 【发布时间】:2016-12-30 20:56:51 【问题描述】:

我正在尝试将一系列单元格复制为图片,将该图片放入电子邮件中,然后使用 Excel 宏发送电子邮件。

我可以做到所有这些,但是图像比原始图像更小/更模糊。我尝试了各种复制/粘贴方法,但结果都是一样的。

当我在没有宏的情况下使用复制为图片(如屏幕所示)手动复制图片,然后仅使用 ctrl+v 粘贴到 Outlook 中,图像看起来很好。

知道为什么会这样吗?

代码如下:

Sub SendMail()

Dim aOutlook As Object
Dim aEmail As Object
Dim rngeAddresses As Range, rngeCell As Range, strRecipients As String
Dim rngeData As Range

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)
Set rngeData = Worksheets("Promo Sync").Range("A5:Y86")

'Copy Range
rngeData.CopyPicture Appearance:=xlScreen, Format:=xlPicture


Dim wordDoc As Word.Document
Set wordDoc = aEmail.GetInspector.WordEditor

'Paste picture
aEmail.Display
wordDoc.Range.Paste

Set rngeAddresses = ActiveSheet.Range("AK2:AK23")

For Each rngeCell In rngeAddresses.Cells
strRecipients = strRecipients & ";" & rngeCell.Value
Next

'Set Subject
aEmail.Subject = "Promo Sync " & Now()
'Set Recipient
aEmail.To = strRecipients
'Send Mail
aEmail.Send

End Sub

【问题讨论】:

使用 pastespecial 方法... 尝试使用此处列出的所有数据类型选项:msdn.microsoft.com/en-us/library/office/ff197265.aspx CopyPicture--> Paste on ChartArea --> Save the image from Chart as jpg--> Attach Inline Image in mail body。没有模糊,没有复制失败问题。 【参考方案1】:

试试 rngeData.Copy 然后 wordDoc.Range.PasteAndFormat wdPasteEnhancedMetafile

这应该会给你很好的质量wdPasteDataType,类似于 Ctrl+V

WdPasteDataType Enumeration (Word)

【讨论】:

以上是关于将范围复制为图像并粘贴到 Outlook 中(结果小/模糊)的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 中使用 VBA,如何在 Outlook 中粘贴表格然后将表格转换为文本?

根据outlook中的某些条件粘贴值

将电话号码从 Outlook 粘贴到 JavaFX TextField 或 TextArea 会产生无关字符

从 Excel 打开 Word 文档并将内容粘贴到 Outlook 邮件的正文

Excel 到 PowerPoint PasteSpecial 并保持源格式

搜索日期并复制并粘贴整行:VBA