我有一个工作表,我需要根据单元格值删除行..
要检查的单元格在 A 列中。
如果单元格包含“-”.. 删除行
我找不到这样做的方法.. 我打开一个工作簿,将所有内容复制到另一个工作簿,然后删除整个行和列,但是必须根据单元格值删除特定的行。
在这里需要帮助。
更新
我拥有的数据样本
最简单的方法是使用过滤器。
您可以过滤 A 列中没有“-”的任何单元格并复制/粘贴,或者(我更喜欢的方法)过滤所有有“-”的单元格,然后全选并删除 - 一次你删除过滤器,你就剩下你需要的东西了。
希望这可以帮助。
屏幕截图非常有用 - 以下代码将完成这项工作(假设数据位于从 A1 开始的 A 列中):
Sub RemoveRows()
Dim i As Long
i = 1
Do While i <= ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion.Rows.Count
If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1).Text, "-", vbTextCompare) > 0 Then
ThisWorkbook.ActiveSheet.Cells(i, 1).EntireRow.Delete
Else
i = i + 1
End If
Loop
End Sub
共享示例文件:https ://www.dropbox.com/s/2vhq6vw7ov7ssya/RemoweDashRows.xlsm
您可以在新列中复制如下公式...
=IF(ISNUMBER(FIND("-",A1)),1,0)
...然后对该列进行排序,突出显示值为 1 的所有行并删除它们。
如果要根据某些特定的单元格值删除行。假设我们有一个包含 10000 行的文件和一个值为 NULL 的字段。并基于该空值要删除所有这些行和记录。
这里有一些简单的提示。首先打开“查找替换”对话框,然后在“替换”选项卡上,将所有包含 NULL 值的单元格设为空白。然后按 F5 并选择空白选项,现在右键单击活动工作表,然后选择删除,然后选择整行选项。
它将根据包含单词 NULL 的单元格值删除所有这些行。
如果您的文件不是太大,您始终可以按具有-的列进行排序,一旦它们全部放在一起,只需突出显示并删除。然后重新排序回到你想要的。
您可以遍历范围内的每个单元格,并使用该InStr
函数检查单元格是否包含字符串,在您的情况下;一个连字符。
Sub DeleteRowsWithHyphen()
Dim rng As Range
For Each rng In Range("A2:A10") 'Range of values to loop through
If InStr(1, rng.Value, "-") > 0 Then 'InStr returns an integer of the position, if above 0 - It contains the string
rng.Delete
End If
Next rng
End Sub
这是您可以基于以下功能的自动过滤器宏:
Selection.AutoFilter
ActiveSheet.Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:="=*-*", Operator:=xlAnd
Selection.AutoFilter
我使用这个自动过滤功能来删除匹配的行:
Public Sub FindDelete(sCol As String, vSearch As Variant)
'Simple find and Delete
Dim lLastRow As Integer
Dim rng As Range
Dim rngDelete As Range
Range(sCol & 1).Select
[2:2].Insert
Range(sCol & 2) = "temp"
With ActiveSheet
.usedrange
lLastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set rng = Range(sCol & 2, Cells(lLastRow, sCol))
rng.AutoFilter Field:=1, Criteria1:=vSearch, Operator:=xlAnd
Set rngDelete = rng.SpecialCells(xlCellTypeVisible)
rng.AutoFilter
rngDelete.EntireRow.Delete
.usedrange
End With
End Sub
像这样称呼它:
call FindDelete "A", "=*-*"
它为我节省了很多工作。祝你好运!