【发布时间】:2020-08-18 11:37:52
【问题描述】:
我有一个单词列表。如果匹配,我想在段落中标记该单词。如果单词匹配然后想改变颜色。
我正在使用此代码并且工作正常。例如,在我的列表中,有一个单词“is”。我只想标记单个单词而不是任何其他单词。我该怎么做?
Sub HighlightStrings()
Application.ScreenUpdating = False
Dim rng As Range
Dim InputRang As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
Dim xFNum As Integer
Dim xArrFnd As Variant
Dim xStr As String
Dim arr
arr = Join(Application.Transpose(Range("A1:A100").Value), ";")
cFnd = arr
If Len(cFnd) < 1 Then Exit Sub
xArrFnd = Split(cFnd, ";")
For Each rng In Selection
With rng
For xFNum = 0 To UBound(xArrFnd)
xStr = xArrFnd(xFNum)
y = Len(xStr)
m = UBound(Split(rng.Value, xStr))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(rng.Value, xStr)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.Bold = True
xTmp = xTmp & xStr
Next
End If
Next xFNum
End With
Next rng
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
在您要查找的每个单词周围加空格?
-
这能回答你的问题吗? Search a range of word from a paragraph
标签: excel vba ms-access outlook