簡體   English   中英

如果單元格不包含特定值,則在Excel中刪除行

[英]Delete row in Excel if a cell does not contain a specific value

我有一個工作表,我需要刪除直到G列為止G列上不包含短語“ @”的所有行。

這是我的樣本數據

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

如果G列上的單元格直到K列不包含“ @”,則刪除行

請幫我..

以下宏從第2行進行掃描,並刪除第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),以創建單個文本字符串。 然后,我們在該串聯字符串中搜索@並相應地將其刪除。

它改變

在此處輸入圖片說明

在此處輸入圖片說明


或者,您可以創建一個包含以下公式的附加列:

在此處輸入圖片說明

FIND用於識別在前面的一個單元格中是否存在@ ,如果不存在則打印No否則顯示Yes 現在,您可以過濾這些元素( No ),選擇范圍(確保僅選擇可見的單元格),刪除行並刪除過濾器。

您將不得不使用多個循環命令。 首先循環瀏覽要處理的記錄。 這是偽代碼的概述。

  • 從G到K遍歷您要處理的列
  • 讀取單元格的值作為字符串
  • 初始化變量atdetector = "dunno_yet"
  • 遍歷字符串的每個字符
  • 如果任何字符=“ @”; 然后atdetector = "found"

遍歷每一列后,如果atdetector = "dunno_yet" ,則永遠不會找到“ @”。 刪除行。 重復直到沒有更多行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM