如何在列中选择多个单元格

时间:2013-11-21 17:24:53

标签: windows excel vba excel-vba

到目前为止,我能够在输入框中输入一个单词并让它返回特定单词在特定列中出现的次数。我想要它做的是选择输入单词出现的每个单元格。或者,突出显示单词出现的每个单元格。这是我已经拥有的:

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

此代码仅选择出现该单词的最后一个单元格。关于如何用单词而不是最后一个单元格选择所有单元格的任何想法?

2 个答案:

答案 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(#, #, #)

我不确定你使用的是什么,希望这有帮助。