首页 > 解决方案 > 如果单元格值等于“”,如何编写 Excel 宏以删除整行

问题描述

我想要一个宏来删除整个单元格值等于“”的多个范围。范围是“B16:B115、B131:B230、B250:B349”。

逻辑:如果单元格等于“”,则删除整行。

我希望实际删除该行,而不仅仅是单元格的内容。

谢谢你。

标签: excelvba

解决方案


这值得一试:

On Error Resume Next
Range("B16:B115,B131:B230,B250:B349").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error Goto 0

取决于“”单元格是否有公式或只是空的。 Range.SpecialCells:xlCellTypeBlanks 究竟代表什么?

编辑:如果你有公式,那么你必须走很长的路:

Sub DeleteEmpty()

    Dim c As Range, rngDel As Range

    For Each c In Range("B16:B115,B131:B230,B250:B349").Cells
        If Len(c.Value) = 0 Then
            If rngDel Is Nothing Then
                Set rngDel = c
            Else
                Set rngDel = Application.Union(rngDel, c)
            End If
        End If
    Next c

    If Not rngDel Is Nothing Then rngDel.EntireRow.Delete

End Sub

推荐阅读