
例如,单元格内容是:

设定几个关键词,"北京", "天津", "河南", "四川", "广西", "河北",如果单元格包括“河北”,就将河北二字标红加粗字体增大两号,否则,将其他关键词标蓝加粗字体增大两号。
经过研究,还是通过excel里面的VBA更好实现,效果如下:

VBA代码:
Sub test()
Dim keysArr As Variant
Dim current_position As Integer
Dim endrow As Integer
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Sheet1")
endrow = .Range("a1").End(xlDown).Row 'A列最后一行的行号
For Each rng In .Range("A1" & ":B" & endrow) '循环区域
keysArr = Array("北京", "天津", "河南", "四川", "广西", "河北") '设置关键词数组
For i = 0 To UBound(keysArr) '循环关键词数组下标
n = 1 '设置变量n,用来表示从第几个位置开始查找
Do While InStr(n, rng, keysArr(i)) > 0 '如果能够找到关键词,则进行循环处理
current_position = InStr(n, rng, keysArr(i)) 'current_position,表示查找到的关键词的开始位置
'MsgBox current_position
fsize = rng.Characters(current_position, Len(keysArr(i))).Font.Size '获取当前字号
If keysArr(i) = "北京" Then
rng.Characters(current_position, Len(keysArr(i))).Font.ColorIndex = 3 '颜色标红
rng.Characters(current_position, Len(keysArr(i))).Font.Bold = True '字体加粗
rng.Characters(current_position, Len(keysArr(i))).Font.Size = fsize + 2 '字号加2
Else
rng.Characters(current_position, Len(keysArr(i))).Font.ColorIndex = 5 '颜色标蓝
rng.Characters(current_position, Len(keysArr(i))).Font.Bold = True '字体加粗
rng.Characters(current_position, Len(keysArr(i))).Font.Size = fsize + 2 '字号加2
End If
n = current_position + 1
Loop
Next i
Next
End With
Application.ScreenUpdating = True
End Sub