第1步:制作一个帮手在表中检查该行中是否有空白字段。例如,如果您的表格中有3列:A(价格),B(数量)和C(成本),您可以添加第四列D并将其标为“任何空白?”。方程将是=IF(OR(ISBLANK([@Price]),ISBLANK([@Quantity]),ISBLANK([@Cost])),"Yes","No")
这会给你一个列来过滤查看所有的空白。
步骤2:在VBA那么您需要做到以下几点:
Range("MyTableNameHere").AutoFilter Field:=Range("MyTableNameHere[Any Blanks?]").Column, Criteria1:="Yes"
Application.DisplayAlerts = False
Range("MyTableNameHere").ListObject.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
Range("MyTableNameHere").AutoFilter Field:=Range("MyTableNameHere[Any Blanks?]").Column
这本质上屏蔽了要使用的辅助列在表中删除行,并选择表中的所有可见数据,并且不对表格进行过滤。我正在搜索如何删除表中的所有可见行,并发现这一点,并弄乱,直到我发现这会起作用。把它和一个辅助列结合起来,选择所有空白的行看起来也是你想要的。
这是表的解决方案,但你应该在的情况下添加错误校验(按照Brettdj的回答)没有空行被发现 –
好吧,我编辑的答案,并添加错误检查 – fthiella
这工作完美。谢谢。 – user91240192094