我正在使用调整后的版本Ron de Bruin的众所周知的'rangetohtml'来通过Outlook发送Excel范围(如下所示:https://www.rondebruin.nl/win/S1/Outlook/bmail2.htm(。虽然工作正常,但某些单元格在逻辑上没有被转移到Outlook中。
。我认为可以将注释添加为工具提示添加一些CSS(如下所示:https://www.w3schools.com/howto/howto/howto_css_tooltip.asp.asp(,但不确定是否a(Outlook支持HTML电子邮件中的Tooltip(我已经看到了相互冲突的消息(,b(如果确实如此,如何在publishObjects
中在html吐出中实现它与吐出HTM相关的位,但对如何包括工具提示感到困惑。
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
任何帮助将不胜感激,谢谢。
这是部分答案。如果看起来很有希望,我将完成它,尽管可能要到周末才完成。
我使用PublishObject的输出范围,然后修改了输出文件,以根据需要添加工具提示。在Microsoft Edge的情况下,经过修改的文件正确显示,当我悬停在相关单元格上时,提示出现。我没有使用Outlook尝试过此操作,但是我认为Outlook使用与Edge相同的显示引擎,因此它应该与Outlook一起使用。在做更多的工作之前,需要对此进行测试。
罗恩·德·布鲁因(Ron de Bruin(提供了一个出色的例程,该例程几乎为PublishObject准备了几乎所有范围,呼叫PublishObjects,获取其创建的文件并将其作为字符串返回,准备成为电子邮件的HTML主体。
据我所知,没有办法以您需要的方式向输出添加评论。您将必须添加必要的代码。
使用方法1,您需要在"获取其创建的文件"one_answers"将其返回为字符串"之间的函数RangeToHtml
中的新代码。也就是说,您让PublishObject做它的事情,然后在将输出返回到呼叫者之前修改其输出。
函数RangeToHtml
中的大量代码允许范围是无连接的,我认为我认为PublishObjects无法处理。如果您的范围很简单,则更容易创建一个处理简单范围加上您的要求的新RangeToHtml
。这将是方法2。
将接近1或接近2更好地满足您的要求。
PublishObject创建的HTML文件包含一个表。表中没有什么可以指出哪个表单元将来自哪个excel范围单元。如果该范围的第2行,第5列5,则必须向下计数s,然后将s降低以找到相应的表单元格。该表单元将必须修改。如果现有的单元格值为xxxx,并且注释是yyyy,则需要以:
替换xxxx<div class="tooltip">Xxxx<span class=tooltiptext>Yyyy</span></div>
这听起来很有趣?