在Excel表中删除空行

问题描述 投票:0回答:2

在VBA中,表的处理方式是否不同?

我有一个简单的宏,我试图删除列S中的单元格为空白的所有行作为表的一部分(“Table1”)。但是我收到一个带有“400”的错误框,谷歌没有帮助我。

如果我用“& LastRow”替换“S2:S1000”,例如“Sub deleteBlankRows() Dim LastRow As Long LastRow = Range("B" & Rows.Count).End(xlUp).Row With Range("S2:S" & LastRow) .SpecialCells(xlCellTypeBlanks).EntireRow.Delete End With End Sub ”,这个宏工作。

Rows
excel vba excel-vba
2个回答
1
投票

发生此错误的原因是您要从表中删除整个行。您可以将表转换为范围,或者在宏中使用EntireRow而不是Sub deleteBlankRows() Dim LastRow As Long With ThisWorkbook.Worksheets("YourSheetName") LastRow = .Range("B" & .Rows.Count).End(xlUp).Row With .Range("S2:S" & LastRow) .SpecialCells(xlCellTypeBlanks).Rows.Delete End With End With End Sub

With ListObjects("Table1")
     .ListColumns("myColumnName").DataBodyRange.SpecialCells(xlCellTypeBlanks).Rows.Delete 
End With

1
投票

假设您要删除的行仅在表中,您还可以直接使用表对象本身。

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.