使用VBA将单元格的值/格式转换为Excel中的HTMLstring

我现在在多个应用程序中遇到了这个问题,我想知道是否有人提出了比我更有效的解决scheme。 实质上,我的目标是将单元格中的内容转换为HTMLstring以包含其所有格式。 到目前为止,我的解决方法是遍历string中的每个字符以确定字体大小,重量和样式,但是,在同时转换大量数据时,这可能会非常缓慢。

依次浏览每个angular色将会非常缓慢,但是在极端情况下应该是必要的。 我已经用下面的方法很成功地解决了这个问题。

对于每个相关属性(粗体,斜体等),我build立一个数组,用于存储每个更改在该属性值中的位置。 然后当生成HTML,我可以吐出所有的文字,直到下一次更改(在任何属性)。 如果变化不频繁,这显然会更快。

现在,为了达到每个属性中变化的位置,我首先testing是否实际上有任何更改,这很容易 – 例如,如果所有文本都是粗体,则Font.Bold将返回true,如果全部为false,则返回false非粗体和空(或其他值 – 我不记得)如果有粗体和非粗体的部分。

所以,如果价值没有任何变化,我们已经完成了。 如果这个值发生了变化,那么我把这个文本的二进制细分成两半,然后重新开始。 再次,我可能会发现一半是一样的,另一半是一个变化,所以我再做一个下半部分细分,等等。

由于很less有细胞往往有很多变化,而且很多细胞没有变化,所以最终效率很高。 或者至less比字符方法更有效率。