在outlook邮件正文excel vba中嵌入图片

在outlook邮件正文excel vba中嵌入图片,vba,excel,outlook,Vba,Excel,Outlook,我正在尝试将工作表中的一个范围作为图像嵌入outlook邮件正文中。它正在正确保存图片,但我只在outlook邮件正文中看到空白图像。我做错了什么 Sub View_Email() tName = Trim(MAIN.Range("tEmail")) If Not tName Like "*@*.*" Then MsgBox "Invalid Email address": Exit Sub Set OutApp = CreateObject("Outlook.Ap

我正在尝试将工作表中的一个范围作为图像嵌入outlook邮件正文中。它正在正确保存图片,但我只在outlook邮件正文中看到空白图像。我做错了什么

Sub View_Email()

    tName = Trim(MAIN.Range("tEmail"))

    If Not tName Like "*@*.*" Then MsgBox "Invalid Email address": Exit Sub

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    'File path/name of the gif file
    Fname = ThisWorkbook.Path & "\Claims.jpg"

    Set oCht = Charts.Add

    STAT.Range("A3:G26").CopyPicture xlScreen, xlBitmap
    With oCht
        .Paste
        .Export Filename:=Fname, Filtername:="JPG"
        '.Delete
    End With

    On Error Resume Next
    With OutMail
        .To = tName
        .CC = ""
        .BCC = ""
        .Subject = STAT.Range("C1").Value
        .HTMLBody = "<html><p>Summary of Claim Status.</p>" & _
                    "<img src=" & Fname & "' height=520 width=750>"
        .display
        '.Send   'or use .Display
    End With
    On Error GoTo 0

    'Delete the gif file
    'Kill Fname

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
子视图_电子邮件()
t名称=修剪(主范围(“淡尾”))
如果名称不象“*@**”,则MsgBox“无效电子邮件地址”:退出Sub
Set-OutApp=CreateObject(“Outlook.Application”)
Set-OutMail=OutApp.CreateItem(0)
'gif文件的文件路径/名称
Fname=ThisWorkbook.Path&“\Claims.jpg”
设置oCht=图表。添加
统计范围(“A3:G26”)。复制图片xlScreen,xlBitmap
用赭石
粘贴
.Export Filename:=Fname,Filtername:=“JPG”
“.删除
以
出错时继续下一步
发邮件
.To=t名称
.CC=“”
.BCC=“”
.Subject=统计范围(“C1”).值
.HTMLBody=“索赔状态摘要。

”&_ "" .展示 “.Send”或使用.Display 以 错误转到0 '删除gif文件 “杀死Fname 发送邮件=无 设置应用程序=无 端接头
您需要添加图像并将其隐藏。位置
0
将添加并隐藏它

.Attachments.Add Fname, 1, 0
1
是Outlook常量
olByValue

添加图像后,必须使用
“cid:FILENAME.jpg”
,如下所示

试试这个

With OutMail
    .To = tName
    .CC = ""
    .BCC = ""
    .Subject = STAT.Range("C1").Value
    .Attachments.Add Fname, 1, 0
    .HTMLBody = "<html><p>Summary of Claim Status.</p>" & _
                "<img src=""cid:Claims.jpg""height=520 width=750>"
    .Display
End With
与OutMail
.To=t名称
.CC=“”
.BCC=“”
.Subject=统计范围(“C1”).值
.Attachments.Add Fname,1,0
.HTMLBody=“索赔状态摘要。

”&_ "" .展示 以
屏幕截图


调试代码并检查
Fname
的值,然后手动检查文件是否存在。打开文件并检查图表是否正确exported@SiddharthRout是的,我确实检查了fname和picture,它们看起来都很好,但是outlook主体将图片显示为空白哦,我知道为什么。。。有一刻,我发布了一个答案。如果有人遇到与我相同的问题,请记住,在HTML中,你的文件名中不能有空格:)直到我将“文件名”更改为“文件名”,我的图片才显示出来。@hammythepic实际上,你可以,但你只需要通过URL来处理文件名或路径中的空格。为了使<代码>文件名<代码>有效,它应该被编码为<代码>文件%20NeX。对于我来说,我不能让它工作——中间的引号(“@ Selki:你面临什么问题?””SIDDHARTHOUTHOUT:我得到一个“图像不能显示,链接可能被破坏”——我正试图动态地输入文件名(TimePigTrime1.1.jpg)。,但我也尝试了字符串-我似乎找不到正确的“”所需,并在编译器中复制粘贴示例结果,抱怨”-尝试了chr(34)替换,但仍然没有成功。实际上,我现在正在家里重新编写所有代码,以发帖子。。。。