VBA 把Excel中指定区域存储成图片,并把图片作为邮件正文向邮箱发送

这里写自定义目录标题

需求是在EXCEl中,把sheet1和sheet2中指定区域,存储成为图片再向指定邮箱,作为正文发送,

Sub SaveRangeAsPictureAndEmail1()
Dim ws As Worksheet
Dim chartObj As ChartObject
Dim rng As Range
Dim imagePath As String
' 设置图片保存路径1
imagePath = "E:\图片\1月\RangeImage1.jpg"

' 导出 Sheet1 B2:M60 区域为图片
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("C23:K59")
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chartObj = ws.ChartObjects.Add(rng.Left, rng.Top, rng.Width, rng.Height)
chartObj.Chart.Paste
chartObj.Chart.Export Filename:=imagePath
chartObj.Delete


    With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

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

On Error Resume Next
With OutMail
    .To = "XXXXXXX@Outlook.com"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .HTMLBody = RangetoHTML(rng)
    .send   'or use .Display
End With

On Error GoTo 0
With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing

' 导出 Sheet2 B2:P67 区域为图片
Set ws = ThisWorkbook.Sheets("Sheet2")
Set rng = ws.Range("B2:P67")
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chartObj = ws.ChartObjects.Add(rng.Left, rng.Top, rng.Width, rng.Height)
chartObj.Chart.Paste
chartObj.Chart.Export Filename:=imagePath
chartObj.Delete

    With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

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

On Error Resume Next
With OutMail
    .To = "XXXXXXXXX@Outlook.com"
    .CC = ""
    .BCC = ""
    .Subject = "This is the Subject line"
    .HTMLBody = RangetoHTML(rng)
    .send   'or use .Display
End With
 On Error GoTo 0
    With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing

' 清理
'Kill imagePath
End Sub
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值