我一直在构建一些有趣的可视化,这些可视化依赖于VBA代码在Excel中为子字符串设置不同颜色的能力.对于包含字符串的单元格,语法的工作方式如下rCell.Characters(start,end).Font.Color=SomeColour
我的应用程序构建字符串并通过在现有值上附加新字符串然后设置新字符串的颜色来一步设置颜色值.这没用.从一个完整的字符串开始,然后着色多个子字符串确实有效.
两个简单的例程说明了不同之处:
Sub TestColourString1()
'designed to show that substring colour can be done to preexisting string
Dim rngTestString As Range
Set rngTestString = Range("colour_string")
rngTestString.Value = "red green blue"
rngTestString.Characters(1, 4).Font.Color = RGB(255, 0, 0)
rngTestString.Characters(5, 10).Font.Color = RGB(0, 255, 0)
rngTestString.Characters(11, 14).Font.Color = RGB(0, 0, 255)
End Sub
Sub TestColourString2()
'designed to show that setting colour while building string doesn't work
Dim rngTestString As Range
Set rngTestString = Range("colour_string")
rngTestString.Value = "red "
rngTestString.Characters(1, 4).Font.Color …Run Code Online (Sandbox Code Playgroud)