我想为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 已采纳

基本上,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

  ask by Toni92 translate from so

未解决问题?本站智能推荐: