Excel 脚本不更改所有匹配字符串的字体颜色

Excel 脚本不更改所有匹配字符串的字体颜色,excel,vba,Excel,Vba,我有一个Excel宏用于更改某些字符串的字体颜色。但是,它不会更改所选字符串的所有实例。例如: A4: asd C4: asd C5: asd C6: asdf 只有C6asd被更改 Private Sub Cmd_Click() Dim r as Range Dim strString$, x&, y$ strString = Range("A4").value For Each r in Range("C4:C6") r.Font.ColorIndex = 1

我有一个Excel宏用于更改某些字符串的字体颜色。但是,它不会更改所选字符串的所有实例。例如:

A4: asd 
C4: asd
C5: asd
C6: asdf 
只有C6
asd
被更改

Private Sub Cmd_Click()
Dim r as Range
Dim strString$, x&, y$
strString = Range("A4").value
For Each r in Range("C4:C6")
    r.Font.ColorIndex = 1
    For x = 1 To Len(r.Text) - Len(strString) Step 1 
        If Mid(r.Text, x , Len(strString)) = strString Then 
            r.Characters(x, Len(strString)).Font.ColorIndex = 5
            r.Characters(x, Len(strString)).Font.Bold = 1
        End If 
    Next x
Next r
End Sub

这似乎是一个索引问题。要快速解决问题,请在接下来的三行中尝试x=0的
而不是x=1的
x+1的
而不是
x

似乎是索引问题。要快速解决问题,请在接下来的三行中尝试x=0的
而不是x=1的
x+1的
而不是
x

 For x = 1 To Len(r.Text) - Len(strString) Step 1
对于所有其他项目“asd”,你基本上是说:对于x=1到(3-3),这是零

如果仔细查看代码,您会发现嵌套for/next循环下的代码永远不会执行

对于所有其他项目“asd”,你基本上是说:对于x=1到(3-3),这是零

如果仔细查看代码,您会发现嵌套for/next循环下的代码永远不会执行