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