excel - 使用 IF 时的多项选择以便在最后删除

标签 excel vba

我有以下两列(简化)

Bond   BMW
Equity Amazon
Bond   Netflix
Bond   Uber
Equity Google

我想要一个基本上通过第一列并删除该行的代码,如果它是 Equity .

我的想法(就for循环而言):
for i = 1 to 5
if ws.Cells(i,1).Value = "Bond" Then
Else 
ws.Rows(i).Select
End If 
Next i
Selection.Delete
End Sub

我注意到的问题是只有最后一个要选择的单元格被删除。我会认为我在循环中选择的所有单元格都会被选中。是否有特定的方法来选择多个。 ( 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

关于excel - 使用 IF 时的多项选择以便在最后删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925553/

相关文章:

excel - 查找事件单元格所在列的范围

excel - 幂法 - 非收敛系统

vba - 如何更新 PowerPoint 幻灯片 (VBA) 中的所有日期/时间值

excel - 将 Excel 列中的多个单元格复制到剪贴板

vba - VBA中重复值的问题

vba - 如何将字符串拆分为单独的单元格

image - vba excel获取图片的底行

vba - 并非所有日期都能被 VBA 识别

excel - 根据月份将excel文件读入 Pandas

Excel如何在遇到字符串中的第一个Alpha后停止LEFT公式