|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 lbpp 于 2018-1-24 22:34 编辑
Sub 涂色_lbpp()
Const C_RED As Long = -16776961
Dim sRE_Pattern As String
Dim objReg As Object
Set objReg = CreateObject("Vbscript.Regexp")
sRE_Pattern = Application.InputBox("请选择特征字符串", , , , , , , 8)
sRE_Pattern = Replace(sRE_Pattern, "?", "\?") '之前未考虑到?是正则表达式的元字符,因此要加\转义为普通字符
sRE_Pattern = "[" & sRE_Pattern & "]"
With objReg
.Global = True
.Pattern = sRE_Pattern
End With
Dim rngProc As Range
Set rngProc = Application.InputBox("请选择处理的数据区域", , , , , , , 8)
Dim rngTemp As Range
Dim mc As Object
Dim m As Object
Application.ScreenUpdating = False
For Each rngTemp In rngProc
Set mc = objReg.Execute(rngTemp.Value)
For Each m In mc
' 之前未仔细测试,FirstIndex返回的是从0开始的,因此此处需+1
rngTemp.Characters(Start:=m.FirstIndex + 1, Length:=1).Font.Color = C_RED
Next m
Next rngTemp
Application.ScreenUpdating = True
End Sub |
评分
-
1
查看全部评分
-
|