Excel 使用“如果”以在末尾删除时进行多项选择
我有以下两列(简化) 我想要一个基本上通过第一列的代码,如果它是Excel 使用“如果”以在末尾删除时进行多项选择,excel,vba,Excel,Vba,我有以下两列(简化) 我想要一个基本上通过第一列的代码,如果它是权益,则删除该行 我的想法(就for循环而言): 我注意到的问题是,只有最后一个要选择的单元格被删除。我本以为我在循环中选择的所有单元格都会被选中。是否有特定的方法选择多个。(Union在这种情况下不起作用,因为列表将是动态的) 通常在删除行时,您会从底部开始,然后逐步向上删除 Sub Button2_Click() Dim LstRw As Long, x LstRw = Cells(Rows.Count, "A
权益
,则删除该行
我的想法(就for循环而言):
我注意到的问题是,只有最后一个要选择的单元格被删除。我本以为我在循环中选择的所有单元格都会被选中。是否有特定的方法选择多个。(
Union
在这种情况下不起作用,因为列表将是动态的) 通常在删除行时,您会从底部开始,然后逐步向上删除
Sub Button2_Click()
Dim LstRw As Long, x
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
For x = LstRw To 1 Step -1
If Cells(x, "A").Value = "Equity" Then
Cells(x, "A").EntireRow.Delete
End If
Next x
End Sub
要将工作表中的活动减至最少,请尝试这样做
Sub Button2_Click()
Dim DeleteRange As Range
Dim LstRw As Long, x As Long
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To LstRw
If Cells(x, "A").Value = "Equity" Then
If DeleteRange Is Nothing Then
Set DeleteRange = Rows(x)
Else
Set DeleteRange = Union(DeleteRange, Rows(x))
End If
End If
Next x
If Not (DeleteRange Is Nothing) Then
DeleteRange.EntireRow.Delete
End If
End Sub
也不需要向后循环,因为删除是在最后完成的
Sub Button2_Click()
Dim LstRw As Long, x
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
For x = LstRw To 1 Step -1
If Cells(x, "A").Value = "Equity" Then
Cells(x, "A").EntireRow.Delete
End If
Next x
End Sub
Sub Button2_Click()
Dim DeleteRange As Range
Dim LstRw As Long, x As Long
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To LstRw
If Cells(x, "A").Value = "Equity" Then
If DeleteRange Is Nothing Then
Set DeleteRange = Rows(x)
Else
Set DeleteRange = Union(DeleteRange, Rows(x))
End If
End If
Next x
If Not (DeleteRange Is Nothing) Then
DeleteRange.EntireRow.Delete
End If
End Sub