当前位置: 首页 > 知识库问答 >
问题:

VBA Excel-当列中的单元格值等于零时删除行

呼延晋
2023-03-14

我的VBA脚本中有一些代码,当行的相应B列的值等于零时,应该删除整行。不幸的是,我所使用的代码行并不是我想要的,因为如果相应行中的任何单元格等于零,它会删除整行。以下是迄今为止的代码:

With Worksheets("Sheet2")
For myloop = .Range("B10000").End(xlUp).Row To 1 Step -1
    If .Cells(myloop, 4).Value = 0 Then .Rows(myloop).EntireRow.Delete
Next myloop
End With

例如,我有一行,其中D列中的单元格等于零,而这段代码删除了整行,即使B列中的单元格的值不是零。如何更改代码,使其实际上只扫描列B中的条目?

如有任何帮助,我们将不胜感激。

共有2个答案

路扬
2023-03-14

AutoFilter()方法如下:

With Worksheets("Sheet2") '<--| reference your shet
    With .Range("B1", .Cells(Rows.Count, "B").End(xlUp)) '<--| reference its column B range from row 1 (header) down to last not empty row
        If WorksheetFunction.CountBlank(.Cells) + WorksheetFunction.CountIf(.Cells, 0) = 0 Then Exit Sub '<--| exit of no empty or "zero" cells
        .AutoFilter Field:=1, Criteria1:=0, Operator:=xlOr, Criteria2:=""  '<--| filter column B cells with "0" content
         .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete '<--| if any filtered cell other than headers then delete their entire rows
    End With
    .AutoFilterMode = False
End With
宗项禹
2023-03-14

用户gizlmo提供了答案:

更改<代码>。单元格(myloop,4)。值到。单元格(myloop,2)。值

 类似资料:
  • 我已经看到(搜索)类似的例子,但不完全是我正在寻找的。 我在Excel中有一个工作簿,它有几张工作表,即工作表a和工作表B,这些工作表有一组数据,所以为了显示工作表a中工作表B上最重要的数据,我只想根据工作表上的单元格值镜像我想指定的行。...我需要根据工作表a中的值删除工作表B中的整行。 例如,在表A中,我有10个值(是/否)的列X,并且我用公式将相同的数据链接回表B。也就是说,如果在Sheet

  • 问题内容: 我该如何忽略和制造? 问题答案: 分母之前检查分母是否为零。这样可以避免捕获异常的开销,如果您希望将其除以零,则可能会更有效率。

  • 我有一个工作表,我需要根据单元格值删除行。。 要检查的单元格位于A列中。。 如果单元格包含“-”。。删除行 我找不到这样做的方法...我打开一个工作簿,将所有内容复制到另一个工作簿,然后删除整个行和列,但必须根据单元格值删除特定的行。 这里需要帮助。 更新 我拥有的数据样本

  • 问题内容: 我有我的自定义单元格渲染器,想删除单元格的边框。 我该怎么做?我试过setBorder,但是不起作用。 这是我的渲染器代码: 问题答案: 单元格之间绘制的线不是单元格本身的一部分。它们是由桌子绘制的。您可以使用以下方法在整个表格中将其关闭: 要仅禁用水平或垂直线: 或者,您可以使用以下方法更改线条的颜色:

  • 问题内容: 如果行中的任何值等于零,如何删除行? 我通常将df.dropna()用于NaN值,但不确定如何使用“ 0”值。 问题答案: 我认为最简单的方法是查看所有值都不等于0的行:

  • 我目前正在尝试将放置在不同的位置,而不是视图控制器的顶部。说到这里,它试图在顶部添加标题来说明导航栏,但这不是必需的,因为我的控制器顶部没有标题。 如果我把的左上角放在我想要的单元格位置,它不会把单元格放在那里: 现在,如果我只是向上移动表格视图,使单元格位于正确的位置,我会遇到另一个问题-滚动时单元格可以向上移动(这是用我的手指在导航控制器上方): 当我放手的时候,是的-单元格将在搜索栏的正下方