我有一个包含多列的表。我想删除表中的特定行。删除逻辑如下:
如果在B列中一个单元格包含一个特定值,在这种情况下,让我们坚持“示例”,我想在符合条件的行之后删除以下两行。
请务必注意,条件可能在表中出现多次,并且表的长度可能不同。
我的想法如下:
1. Identify all rows which contain "example" in column B
2. Store the row numbers in a variable
3. Go through the variable and create a new one which has twice the length of the first one and write the two following rows into the 2nd variable
4. Use the 2nd variable to delete the rows with that numbers.
不幸的是,我对VBA完全陌生,无法对其进行编码。我也尝试过一起复制代码,但是找不到针对我特定主题的解决方案。
答案 0 :(得分:1)
这是您的方法的一个很小的修改
因此,如果第7行包含“ example” ,请删除第7行和第8行
之前:
代码:
Sub RowKiller()
Dim N As Long, i As Long, t As String
t = "example"
N = Cells(Rows.Count, "B").End(xlUp).Row
For i = N To 1 Step -1
If Cells(i, "B") = t Then
Range(Cells(i + 1, "B"), Cells(i + 2, "B")).EntireRow.Delete
End If
Next i
End Sub
及之后:
答案 1 :(得分:0)
相反,我认为处理此问题的最佳方法是:
就这样。
子deleteRows()
Dim lastRow as Long
'get the last row
lastRow = Sheet1.Range("B" & Sheet1.Rows.Count).End(xlUp).Row
'Now work backwards
Dim i As Long
For i = lastRow to 1 Step -1 'change that 1 to whatever your first row is
If Sheet1.Cells(i, 2).value = "Example" Then
Sheet1.Rows(i + 1 & ":" & i + 2).Delete
End If
Next i
结束子
我还没有测试过,但是看起来不错。您可能需要在其中进行一些调整,但这肯定会带您进入球场。