【问题标题】:Excel VBA - Append text to cell while keeping the cell's already changed text colorsExcel VBA - 将文本附加到单元格,同时保持单元格已更改的文本颜色
【发布时间】:2015-01-08 06:25:07
【问题描述】:

我正在对两个单元格(例如单元格 A1 和单元格 B1)中的数据进行比较。然后我将结果添加到“比较”单元格中。

  • 如果在 B1 中添加(新)某些内容,我将该值添加到“比较”单元格并将该值着色为绿色
  • 如果两者都存在,我将该值添加到“比较”单元格中并将该值着色为黑色
  • 如果仅 A1 中存在某些内容(在 B1 中已删除),我将该值添加到“比较”单元格中,并将该值着色为 RED。

这可行,但每次我向单元格添加新内容时,单元格不会保持之前更改文本的颜色。

我使用以下内容将下一个项目添加到单元格中,然后为该项目着色。

comparedCell.Value = comparedCell & "|" & myStringToAppend
comparedCell.Characters(Len(comparedCell) + 2, Len(myStringToAppend)).Font.Color = RGB(0, 255, 0)

有没有办法在不重置单元格中已经着色的内容的情况下添加附加彩色文本?

【问题讨论】:

    标签: vba text colors append cell


    【解决方案1】:

    目前你正在测试你追加的比较单元格的长度,所以它将包括追加的文本。

    尝试使用 InStrRev() 查找最后一个管道字符“|”从那里进入并工作。

    类似这样的:

    comparedCell.Value = comparedcell & "|" & myStringToAppend
    comparedCell.Characters(InStrRev(comparedCell, "|") + 1, Len(myStringToAppend)).Font.Color = RGB(0, 255, 0)
    

    【讨论】:

    • 这改进了我的代码,谢谢。但它没有回答我的问题。
    • 其实应该有帮助...我只需要重新思考一下我的逻辑。
    • 我不确定你的其余代码在做什么,但是我发布的 sn-p 只会在添加到 myStringToAppend 后更改 myStringToAppend 的颜色 - 是这个不是你想要的?也许我误解了这个问题:(
    • 这就是代码当前所做的,问题是当我将新文本附加到单元格时,我之前附加和着色的内容被重置为默认颜色。我想我可以通过将东西添加到 3 个列表/数组(红色/黑色/蓝色)然后将这些数组添加到单元格来解决这个问题。之后,我可以根据每个数组中的项目数为单元格着色。这样我就可以在将所有内容添加到单元格后更改颜色(防止颜色被覆盖)。我可能会数“|”的数量找到下一个附加数组的颜色应该改变的位置。
    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多