2014-03-27 279 views
1

我有一個表,我需要刪除的不包含在G列短語「@」,直到列K.所有行刪除行Excel中,如果一個單元格不包含特定值

這是樣本數據我有

http://i.stack.imgur.com/MfqUM.png

如果在G列細胞,直到K欄不包含 「@」 刪除行

請幫助我..

+0

你需要使用VBA來做到這一點嗎?或者是一個簡單的過濾和刪除也是一個選項? – Werner

+0

是的..我需要使用VBA做到這一點... – Kundiharto

+0

任何單元格不包含@或者所有單元格不包含@? – nutsch

回答

0

的FO從第2行llowing宏觀掃描和刪除,其中,列2-5不包含@行:

Sub Macro1() 
CurRow = 2 
While CurRow < Application.WorksheetFunction.CountA(Range("A:A")) + 1 
    If InStr(1, _ 
     Sheet1.Cells(CurRow, 2) _ 
     & Sheet1.Cells(CurRow, 3) _ 
     & Sheet1.Cells(CurRow, 4) _ 
     & Sheet1.Cells(CurRow, 5), _ 
     "@", vbTextCompare) Then 
    Else 
    Sheet1.Rows(CurRow & ":" & CurRow).Delete Shift:=xlUp 
    CurRow = CurRow - 1 
    End If 
    CurRow = CurRow + 1 
Wend 
End Sub 

使用Instr,我們串接感興趣的列(2-5上面我的示例代碼)創建一個單一的文本字符串。然後我們搜索該連接字符串中的@並相應地刪除。

它改變

enter image description here

enter image description here


替代地,可以創建一個附加列包含以下公式:

enter image description here

FIND用於識別是否@前述小區之一內時,如果沒有和Yes如果它打印No。現在您可以過濾這些元素(No),選擇範圍(確保僅選中可見單元格),刪除行並刪除過濾器。

+0

非常感謝@werner它的作品! – Kundiharto

0

您將不得不使用幾個循環命令。首先循環你想要處理的記錄。這是一個僞代碼的概要。

  • 環通過與要處理的列,G至K
  • 讀取的單元格的值作爲字符串
  • 通過所述串的每一字符初始化變量atdetector = "dunno_yet"
  • 如果有任何字符=「@」;然後atdetector = "found"

循環遍歷每列後,如果atdetector = "dunno_yet",則從未找到「@」。刪除該行。重複,直到沒有更多的行。

相關問題