通过电子邮件发送Excel表(使用RangetoHTML)时,请保留单元注释



我正在使用调整后的版本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>

这听起来很有趣?

最新更新