到目前为止,我能够在输入框中输入一个单词并让它返回特定单词在特定列中出现的次数。我想要它做的是选择输入单词出现的每个单元格。或者,突出显示单词出现的每个单元格。这是我已经拥有的:
Sub wordcounter()
Dim word As String
Dim count As Integer
word = InputBox(Prompt:="Enter word to search: ", Title:="Enter Word", Default:="Search word")
For Each cell In ActiveSheet.UsedRange.Columns("G").Cells
cell.Value = LCase(cell.Value)
If InStr(cell.Value, word) Then
cell.select
End If
If InStr(cell.Value, word) Then
count = count + 1
End If
Next cell
MsgBox (word & " = " & count)
End Sub
此代码仅选择出现该单词的最后一个单元格。关于如何用单词而不是最后一个单元格选择所有单元格的任何想法?
答案 0 :(得分:1)
以下是我将如何做到这一点,完全避免循环加速和简化:
Sub sWordcounter()
Dim sWord As String
Dim count As Integer
sWord = InputBox(Prompt:="Enter Word to search: ", Title:="Enter Word", Default:="Search Word")
With ActiveSheet.UsedRange.Columns("G").Cells
.AutoFilter
.AutoFilter field:=1, Criteria1:="*" & sWord & "*"
.Offset(1).Resize(.Rows.count - 1).SpecialCells(xlCellTypeVisible).Select
.AutoFilter
End With
End Sub
您可以将.Select部分调整为您要对单元格执行的任何操作。
答案 1 :(得分:0)
而不是cell.select
你可以通过使用以下颜色将其突出显示来突出显示:
cell.InteriorColor.Color = RGB(#, #, #)
我不确定你使用的是什么,希望这有帮助。