2013-02-12 85 views
0

我不得不問,如何搜索值和!刪除型動物Excel搜索並刪除不包含搜索值的不同特定單元

如果我有從片column A B C和單元格A1這樣下面的數據(2)有「BBB」

什麼功能或VBA我應該使用在列A和B除掉細胞的上一行不包含BBB

嘗試使用宏記錄,但它不會很好地工作

 A     B      C 

aaa-1.1.1.1   aa1a1a1a1a1    remark 

bbb-2.5.2.2   b2b2b2b2b2b2    remark 

ccc-3.3.3.3   c3c3c3c3c3c3    remark 

bbb-1.2.2.5   b2b2b2b2b2b2    remark 

ddd-4.1.2.4   d4d4d4d4d4d4    remark 

bbb-1.3.2.7   b2b2b2b2b2b2    remark 

bbb-2.2.2.2   b2b2b2b2b2b2    remark 

結果應該是像

A     B      C 
               remark 

bbb-2.5.2.2   b2b2b2b2b2b2    remark 

               remark 

bbb-1.2.2.5   b2b2b2b2b2b2    remark 

               remark 

bbb-1.3.2.7   b2b2b2b2b2b2    remark 

bbb-2.2.2.2   b2b2b2b2b2b2    remark 

感謝您的每一個幫助我能:)

+1

嘗試使用自動篩選,然後修改代碼錄製宏?請參閱這裏使用Autofilter http://stackoverflow.com/questions/10050946/selecting-columns-that-have-values-in-excel-macro-range-object-in-vba和這裏http://stackoverflow.com/questions/11631363/how-to-copy-a-line-in-excel-using-a-specific-word-and-pasting-to-another-excel -s – 2013-02-12 04:33:46

回答

1

使用VBA

以下時,它得到一個空行,將停止......

x = 1 
While Cells(x, 1) <> "" 
    If Left(Cells(x, 1), 3) <> "bbb" Then 
     Cells(x, 1) = "" 
     Cells(x, 2) = "" 
    End If 
    x = x + 1 
Wend 
+1

如果你有大數據集,那麼循環被認爲是非常慢與自動過濾器相比:) – 2013-02-12 04:45:06

+1

@Siddharth出於好奇,你知道自動過濾器有多快嗎? - 由於OP沒有具體說明數據量,所以這是一個非常簡單的問題解決方案。 +1。 – Sam 2013-02-12 16:26:14

+1

@Sam:這是一個有效的問題。如果你有一個小的數據集,那麼速度可以忽略不計,但是如果你有像我上面提到的那樣的大數據集,說10K行,那麼你會循環10K次,而自動過濾器會更快。如果你知道如何在Excel中使用計時器,那麼你實際上可以計時:) – 2013-02-12 18:33:40

1

如果你不看爲自動化解決方案(例如這是一個完成的場景,不需要編程或記錄),你可以簡單地使用基於Column A的值的數據,然後刪除過程是微不足道的。總之:

  1. 突出顯示有問題的所有行/列
  2. 右鍵 - >排序 - >排序從A到Z
  3. 選中所有行的上方和下方包含bbb行。這可以通過在進行選擇時持有CTRL來完成。
  4. 按下刪除

這裏的 enter image description here

選擇行上面和下面的這些步驟一些屏幕截圖,結果

排序數據bbb enter image description here

Delete(結果) enter image description here