用于突出显示Excel中特定列中特定单词的代码
我正在搜索excel代码,该代码在特定列中搜索特定关键字并将其高亮显示为黄色;并且能够对多个列执行此操作,每个列都有自己独特的关键字 示例:用于突出显示Excel中特定列中特定单词的代码,excel,vba,search,cell,highlight,Excel,Vba,Search,Cell,Highlight,我正在搜索excel代码,该代码在特定列中搜索特定关键字并将其高亮显示为黄色;并且能够对多个列执行此操作,每个列都有自己独特的关键字 示例: 在A列中搜索关键字“river” 在B列中搜索关键字“ocean” 在C列中搜索关键字“sea” 每次,unique关键字仅在特定列中突出显示,即使它可能也出现在其他列中 代码将包含100列,从“Column A”到“Column CV”,并允许为每列插入唯一的关键字 这可能吗 在论坛中搜索时,我发现一些代码突出显示excel中的特定单词,但没有一个代
- 在A列中搜索关键字“river”
- 在B列中搜索关键字“ocean”
- 在C列中搜索关键字“sea”
Sub colorText()
Dim cl As Range
Dim startPos As Integer
Dim totalLen As Integer
Dim searchText As String
Dim endPos As Integer
Dim testPos As Integer
' specify text to search.
searchText = "river"
' loop trough all cells in selection/range
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 Sub
只有我需要一个黄色的高光,而不是红色。我需要它用于excel 2016,此代码用于excel 2010
谢谢。编辑:您可以突出显示单元格或更改单元格中特定文本的字体颜色。Excel没有突出显示单元格中特定文本背景的选项 因为您只希望看到搜索的字符串被着色,所以为了便于查看,我使用Font.ColorIndex属性和红色而不是黄色 我还声明了一个数组,以便您可以根据需要输入预定义的100个唯一关键字 让我知道它是否适合您:
Sub Search_by_Column()
Dim rng As Range
Dim i As Long
Dim oldrngrow As Long
Dim myValue As String
Dim arr() As Variant
arr = Array("river", "ocean", "sea") '..... keep going till 100 keywords
For i = 1 To UBound(arr) + 1
myValue = arr(i - 1)
If myValue = vbNullString Then
End
End If
Set rng = Cells.Find(What:=myValue, After:=Cells(1, i), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If rng Is Nothing Then
GoTo Skip
End If
oldrngrow = rng.Row
Do While rng.Column = i
rng.Characters(InStr(rng, myValue), Len(myValue)).Font.ColorIndex = 3
Set rng = Cells.FindNext(After:=rng)
If oldrngrow = rng.Row Then
Exit Do
End If
Loop
Skip:
Next i
End Sub
使用宏记录器生成可根据需要修改的代码。可以使用VBA颜色常量,例如:
ActiveCell.Interior.color=vbYellow
非常感谢您回答我的问题。我刚试过你的密码。黄色可以用作突出显示而不是文本颜色吗?有没有一种方法可以自动应用高亮显示,而无需在每列中手动键入单词?是要高亮显示关键字的背景还是整个单元格?您是否计划为100列搜索100个唯一关键字?这100个关键字是预先为每一列确定的吗?是的,只是关键字本身的背景,而不是整个单元格。我只是希望在阅读文本时能够更好地看到关键字。总的来说,我拥有的每个文档都有100列,每个列都有自己独特的关键字,我希望能够突出显示黄色,以便更快地扫描文档。这能做到吗?(谢谢。很抱歉没有及时回复。我出城探亲,今天才回来。)。