【问题标题】:How to delete rows based on empty cell value in VBA [duplicate]如何根据VBA中的空单元格值删除行[重复]
【发布时间】:2017-09-15 13:57:40
【问题描述】:

我正在尝试根据 D 列中的单元格值是否为 NULL 来删除整行。到目前为止,我的整个代码是:

Sub DeleteNULL()

Dim i As Long

For i = 2 To 119713
        If IsEmpty(Range("Di")) = True Then
             Rows([i]).EntireRow.Delete

        Else
            If IsEmpty(Range("Di")) = False Then
            Next i

        End If


End Sub

我不断收到编译错误,如果没有 Else 或 Next 没有 For,我应该如何解决这个问题?

提前致谢。

【问题讨论】:

标签: vba excel for-loop null


【解决方案1】:

一些事情:

  1. 大量语法的放置已关闭。
  2. 添加或删除行时,您需要根据 Excel 处理这些事件的方式向后循环。

见下面的代码:

Sub DeleteNULL()

    Dim i As Long

    For i = 119713 To 2 Step -1
        If IsEmpty(Range("D" & i)) Then Rows([i]).EntireRow.Delete
    Next i

End Sub

【讨论】:

  • 不应 Endif 和 Next 必须处于交换位置。
  • @AnkitBajpai - 已修复。没看到我的错别字。谢谢。投反对票的是你吗?
  • 从不。我对 SO 的拇指规则,如果你不能得到选票,永远不要投票给别人。
  • 好的@AnkitBajpai。谢谢你让我知道。我很好奇为什么它会被否决
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多