我正在编写一个Sub,可以在单个单元格中找到单词“ uM”的所有实例,并将字体更改为蓝色。这是我想要代码执行的操作以及我的代码输出的picture。
这是我的代码:
Sub Highlight_uM()
Dim WS As Worksheet
Dim Attention As Range
Dim Cell As Range
Dim Counter As Integer
Set WS = ActiveWorkbook.ActiveSheet
Set Attention = WS.Cells.Find(What:="Attention", LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
'Find Attention range
For Each Cell In Attention
For Counter = 1 To Len(Cell)
If Cell.Characters(Counter, 1).Text = "u" Then
Cell.Characters(Counter, 1).Font.ColorIndex = 42
End If
Next
Next Cell
End Sub
您可以从我的代码中看到,它仅选择.Text = "u"
。如果将其更改为= "uM"
,则该子按钮不会执行任何操作。关于如何修改代码以突出显示单元格中整个单词“ uM”的每个实例的任何提示?
摘自Range.Characters
文档和第二个参数:
Length:要返回的字符数。如果省略此参数,则此属性返回字符串的其余部分(起始字符之后的所有内容)。
问题是
Range.Characters
将仅返回one个字符,因此Cell.Characters(Counter, 1).Text
将始终为false。
将= "uM"
更改为1
。
根据我的评论,一种快速的解决方法是使用带有2
函数的二进制比较器来比较文本:
StrComp
注意,我删除了外部循环。