【问题标题】:Is there a way to change font color of portion of a string in VBA userform's label?有没有办法改变 VBA 用户窗体标签中字符串部分的字体颜色?
【发布时间】:2021-07-27 14:36:24
【问题描述】:

我正在尝试根据某些条件更改加载到用户窗体标签中的字符串部分的颜色。我的尝试是使用instr 函数找到我想要格式化的字符串的起始字符和长度,然后遍历单个字符并更改它们的.forecolor 属性。

startpoint = InStr(showformula, ListBoxValue)
endpoint = startpoint + Len(ListBoxValue)

For i = startpoint To endpoint
  LabelMain.Characters(i).ForeColor = RGB(255, 0, 0)
Next i

不幸的是,我在LabelMain.Characters(i).ForeColor = RGB(255, 0, 0) 上遇到错误,因为看起来我无法在 VBA 的标签用户表单中选择单个字符。

还有其他方法可以更改标签标题部分的字体颜色吗?

谢谢!

【问题讨论】:

  • 没有。 ForeColor 适用于整个标签,而不是单个字母。

标签: vba formatting label userform


【解决方案1】:

不。如果只是一次性的,可以将您的文本拆分为多个标签并将它们放在一起。

如果你想要一些程序化的东西,那就更棘手了,我能想到的唯一解决方案是:

  • 创建字体集中所有字符的宽度数组。

  • 计算从高亮文本开始的标签边缘的距离

  • 用等于高亮文本长度的空格替换文本

  • 根据新距离在正确位置的顶部创建一个新标签。

     set Lbl = MyForm.Contorls.Add("Forms.Label.1", "MyNewLabelName",true)
     'Set properties of the lbl
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 2021-03-09
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多