String 是否可以在Excel单元格中生成多种颜色的文本?

String 是否可以在Excel单元格中生成多种颜色的文本?,string,excel,vba,text,colors,String,Excel,Vba,Text,Colors,我有字符串strInfo,其中包含“雇员约翰·迈巴赫” 我如何使“雇员”部分为黑色文本,“约翰·迈巴赫”部分为红色 “员工”部分将始终保持不变,但员工的姓名部分将发生更改,使其可以是由两部分组成的姓名(John Doe),也可以是由三部分组成的姓名(John Allen Doe),或者只是一个名(John) 我希望单词“Employee”总是黑色的,但是单元格中的其余文本,即姓名部分,都是红色的。这可能吗?宏记录器是您的朋友: Dim fixedLength As Long fixedLengt

我有字符串strInfo,其中包含“雇员约翰·迈巴赫”

我如何使“雇员”部分为黑色文本,“约翰·迈巴赫”部分为红色

“员工”部分将始终保持不变,但员工的姓名部分将发生更改,使其可以是由两部分组成的姓名(John Doe),也可以是由三部分组成的姓名(John Allen Doe),或者只是一个名(John)


我希望单词“Employee”总是黑色的,但是单元格中的其余文本,即姓名部分,都是红色的。这可能吗?

宏记录器是您的朋友:

Dim fixedLength As Long
fixedLength = Len("Employee")
ActiveCell.FormulaR1C1 = "Employee Some Employee"
With ActiveCell.Characters(Start:=fixedLength + 2, Length:=Len(ActiveCell) - fixedLength - 1).Font
    .Color = vbRed
End With

由于工作簿可以有不同的调色板,因此使用
ColorIndex
,可能会得到不同的结果,所以像
.Color=vbRed
这样的东西可能更安全。我建议将该逻辑放入一个工作表\u Change事件宏中,监视该列,以便在键入名称时自动应用颜色校正。@TimWilliams很好。编辑。