首页 > 解决方案 > 有没有办法改变 VBA 用户窗体标签中字符串部分的字体颜色?

问题描述

我正在尝试根据某些条件更改加载到用户窗体标签中的字符串部分的颜色。我的尝试是通过使用函数找到我想要格式化的字符串的起始字符和长度,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 的标签用户表单中选择单个字符。

是否有另一种方法可以更改标签标题部分的字体颜色?

谢谢!

标签: vbaformattinglabeluserform

解决方案


没有。如果它只是一次性的,可以将您的文本分成多个标签并将它们放在彼此的顶部。

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

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

  • 计算从突出显示文本开始的标签边缘的距离

  • 用等于突出显示文本长度的空格替换文本

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

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

推荐阅读