如何用vba把excel单元格区域转换为html源代码? |
您所在的位置:网站首页 › excel选定区域保存为图片格式 › 如何用vba把excel单元格区域转换为html源代码? |
如何用vba把excel单元格区域转换为html源代码?
2019年7月26日
作者:水星Excel
9,387 次浏览
暂无评论
在 如何用vba将excel工作簿、工作表、单元格区域另存为html网页文件? 一文中我们介绍了如何将exce工作簿、工作表、单元格区域另存为html网页文件。 在用vba 发送邮件时,经常需要发送html格式的邮件内容。 如果需要将excel单元格区域带格式的插入到要发送的邮件正文中,需要将其转换为html格式。 以下是一个通用的将excel单元格区域转化为html格式代码的自定义函数: Function Range2Html(oRng As Range) As String '只读打开文本文档 Const ForReading = 1 '可写打开文本文档 Const ForWriting = 2 '追加打开文本文档,写在原文本文档的末尾 Const ForAppending = 8 '以系统默认的方式打开文本文档 Const TristateUseDefault = -2 '以Unicode方式打开文本文档 Const TristateTrue = -1 '以ASCII方式打开文本文档 Const TristateFalse = 0 Dim oWB As Workbook Set oWB = oRng.Parent.Parent Dim oWk As Worksheet Set oWk = oRng.Parent Dim oPO As PublishObject Dim sPath As String sPath = Excel.ThisWorkbook.Path & "\" Dim sFlie As String sFile = sPath & "Result.htm" With oWB Debug.Print .PublishObjects.Count For Each oPO In .PublishObjects oPO.Delete Next Set oPO = .PublishObjects.Add(SourceType:=xlSourceSheet, Filename:=sFile, Sheet:=oWk.Name, Source:=oRng.Address, HtmlType:=xlHtmlStatic, DivID:="Test1") With oPO '开始发布 .Publish (True) End With End With Set oFSO = CreateObject("Scripting.FileSystemObject") With oFSO Set oTextStream = .OpenTextFile(sFile, ForReading, True, TristateUseDefault) With oTextStream Range2Html = .ReadAll End With End With End Function然后使用如下的代码发送邮件时将excel单元格区域转成html源代码即可: Sub QQ1722187970() Dim oWk As Worksheet Set oWk = Sheet12 Dim oRng As Range Set oRng = oWk.Range("B2").CurrentRegion Dim sPath As String sPath = Excel.ThisWorkbook.Path & "\" Dim objOutlookApp As Outlook.Application Set objOutlookApp = New Outlook.Application Dim objAccount As Account '邮件附件对象 Dim objAttachment As Outlook.Attachment With objOutlookApp For Each objAccount In .Session.Accounts If objAccount.AccountType = olPop3 And objAccount.DisplayName Like "工作*" Then '一封邮件对象 Dim objMailItem As Outlook.MailItem Set objMailItem = .CreateItem(olMailItem) With objMailItem '收件人,多个收件人用分号间隔 .To = "[email protected]" '抄送人 .CC = "[email protected]" '密件抄送人 .BCC = "[email protected]" '邮件主题 .Subject = "New Test" '邮件内容格式 .BodyFormat = olFormatRichText '邮件的内容 .HTMLBody = Range2Html(oRng) '要添加的附件 ' .Attachments.Add sPath & "Test.xlsx" objMailItem.SendUsingAccount = objAccount ' 显示对话框 .Display '开始发送邮件 .Send End With End If Next End With End Sub其它相关文章推荐:如何在vba中用OpenTextFile方法读写文本文档?如何用vba抓取存在本地电脑上的Html网页文件中的内容?如何用vba对文本文档进行读写操作?如何用vba批量把固定分隔符或者固定宽度的文本文档另存为excel文件?如何用vba批量删除Word文档中的空白页?如何用vba判断word文档中是否有高亮(颜色)的文字? 分类 : OUTLOOK VBA , VBA 标签 : outlook发送邮件 , 发送html邮件 , 邮件正文带格式 , 邮件正文带表格 声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |