突出显示特定单元格中单词的所有实例

问题描述 投票:0回答:2

我正在编写一个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”的每个实例的任何提示?

excel vba
2个回答
0
投票

摘自Range.Characters文档和第二个参数:

Length:要返回的字符数。如果省略此参数,则此属性返回字符串的其余部分(起始字符之后的所有内容)。

问题是

Range.Characters

将仅返回one个字符,因此Cell.Characters(Counter, 1).Text 将始终为false。

= "uM"更改为1


0
投票

根据我的评论,一种快速的解决方法是使用带有2函数的二进制比较器来比较文本:

StrComp

注意,我删除了外部循环。

© www.soinside.com 2019 - 2024. All rights reserved.