Excel VBA宏仅查找和删除一些所需的单元格

时间:2017-07-08 15:05:23

标签: excel vba find

我想为Excel创建一个非常简单的VBA宏,它在9列和可变行数范围内查找并找到包含特定单词的单元格,然后删除它们的内容。 我目前有这个代码:

Sub FindAllAndDelete()
'
'   
    Dim SearchRange As Range

    Range("B58:J58").Select
    Range(Selection, Selection.End(xlDown)).Select
    Set SearchRange = Range(Selection, Selection.End(xlDown))

    Do While Not IsEmpty(SearchRange)
      Set c1 = SearchRange.Find("Missing")
        c1.ClearContents
      Set c2 = SearchRange.Find("NR")
        c2.ClearContents
      Set c3 = SearchRange.Find("NO")
        c3.ClearContents
    Loop

End Sub

似乎只找到并删除了其中一些单元格的内容,而不是所有单元格。 你能告诉我为什么会发生这种情况并且可能会给我一个提示如何修复它?

1 个答案:

答案 0 :(得分:0)

基本上,find会只为您提供您正在寻找的项目的第一个实例。你必须使用下面给出的findnext

Set SearchRange = Range("B58:J158")
  Set c = SearchRange.Find("NO")
  If Not c Is Nothing Then
    Do
        c.ClearContents
        Set c = SearchRange.FindNext(c)
    Loop While Not c Is Nothing
  End If