2017-07-08 67 views
0

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

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

是的,谢谢你的评论,我忘了提及那个错误,我不知道是什么原因造成的。因为我似乎没有With块变量,并且Object变量似乎已被设置,否则代码如何为某些内容运行? – Toni92

回答

0

基本上找到会给你只有你正在寻找你的项目的第一个实例。您将不得不使用下面给出的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 
+0

非常感谢,这对我有用:) – Toni92

相关问题