在 Excel 2007 电子表格中,我想要查找替换并突出显示单元格中的部分文本。不过,使用查找替换会重新格式化整个单元格。
例如,如果单元格包含:
Pellentesque vel Massa 坐在 amet magna eleifend placerat。佩伦特斯克
格言,nibh vitaetincidunt placerat,elit libero tristiquetellus,
vel imperdiet nulla totortor id 直径。莫里斯门前庭。
我想找到“Pellentesque”并将其替换为佩伦特斯克.
没有VBE或公式可以完成吗?
也许这适合(请确保在运行之前选择的单元格数量不超过所需的数量,否则可能需要一段时间):
Sub FormatSelection()
Dim cl As Range
Dim SearchText As String
Dim StartPos As Integer
Dim EndPos As Integer
Dim TestPos As Integer
Dim TotalLen As Integer
On Error Resume Next
Application.DisplayAlerts = False
SearchText = Application.InputBox _
(Prompt:="Enter string.", Title:="Which string to format?", Type:=2)
On Error GoTo 0
Application.DisplayAlerts = True
If SearchText = "" Then
Exit Sub
Else
For Each cl In Selection
TotalLen = Len(SearchText)
StartPos = InStr(cl, SearchText)
TestPos = 0
Do While StartPos > TestPos
With cl.Characters(StartPos, TotalLen).Font
.FontStyle = "Bold"
.ColorIndex = 3
End With
EndPos = StartPos + TotalLen
TestPos = TestPos + EndPos
StartPos = InStr(TestPos, cl, SearchText, vbTextCompare)
Loop
Next cl
End If
End Sub
应壮胆并染红。如果重新运行宏,更改不会被覆盖。如果不改变颜色,注释掉 .ColorIndex = 3。
(基于 @Skip Intro 指向 SO15438731 问题的指针并进行了修改,以及 SO10455366 答案中的一些代码。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)