Excel 脚本不更改所有匹配字符串的字体颜色
我有一个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
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
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循环下的代码永远不会执行