如果单元格不包含特定值,请在Excel中删除行
我有一个工作表,我需要删除列G上的所有不包含短语“@”的行,直到K列。
这是我的样本数据
如果列G上的单元格直到列K不包含“@”,则删除行
请帮帮我..
你将不得不使用几个循环命令。 首先循环你想要处理的logging。 这是一个伪代码的概述。
- 循环遍历要处理的列,G到K
- 以stringforms读取单元格的值
- 初始化variables
atdetector = "dunno_yet"
- 遍历string的每个字符
- 如果有任何字符=“@”; 那么
atdetector = "found"
循环遍历每列后,如果atdetector = "dunno_yet"
,那么“@”从来没有find。 删除行。 重复,直到没有更多的行。
从第2行进行以下macros扫描,并删除第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)来创build单个string。 然后我们在这个连接的string中search@
并相应地删除。
它改变
成
或者,您可以创build包含以下公式的附加列:
FIND
用于标识@
是否存在于前面的一个单元格中,如果不存在,则输出No
如果Yes
,则输出是。 现在可以过滤这些元素( No
),select范围(确保只有可见的单元格被选中),删除行并删除filter。