如果某列范围内的所有单元格均为空白,则删除 Excel 中的一行

Posted

技术标签:

【中文标题】如果某列范围内的所有单元格均为空白,则删除 Excel 中的一行【英文标题】:Delete a row in excel if all cells are blank in a range of columns 【发布时间】:2019-06-16 05:24:36 【问题描述】:

我一直在四处寻找这个问题的答案。我找到了多个很棒的资源,这些资源展示了如果指定列中的单元格为空白,如何使用宏删除行,但我找不到任何可以让您检查一系列列并删除如果该列范围内的所有单元格为空,则行(如果 D1:F1 完全为空白,则删除第 1 行,但如果 D2:F2 E2 范围内有数据,则不要删除该行)。

这是我一直试图弄乱的代码

Application.ScreenUpdating = False
Columns("D:D").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True

我从这个答案Excel VBA: Delete entire row if cell in column A is blank (Long Dataset)找到了上面的代码

如果我尝试修改该代码以说

Columns("D:F").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

然后我收到一条错误消息,上面写着“运行时错误 1004:无法在重叠部分上使用该命令。”

【问题讨论】:

请不要假设我们可以观看您的屏幕。 然后当我尝试运行代码时出现错误 没有帮助。您收到什么错误消息? 我编辑了我的问题以包含错误消息“运行时错误 1004:无法在重叠部分使用该命令。” 要么使用自动过滤器,要么添加一个帮助列来检查空格的数量(然后可能使用 AF)。 所以我在工作表的 G 列中有这个 =COUNTIF(D2:F2,"") 如何修改我的问题中的代码以检查 G 列的特定数字并删除该行如果匹配吗? 【参考方案1】:

你必须做一个 bucle 来循环列,因为如果你在同一行的多列中有空白单元格,它就不起作用。

【讨论】:

以上是关于如果某列范围内的所有单元格均为空白,则删除 Excel 中的一行的主要内容,如果未能解决你的问题,请参考以下文章

如果 Range 包含任何值,VBA 返回 1 - 不工作

Excel公式用于搜索范围内的所有单元格是不是为“True”,如果不是,则显示“False”

删除空白单元格

根据单元格值合并范围内的单元格,但最后一个单元格没有被合并

Excel VBA删除范围内的空白行

如果单元格为空白,则清除 VBA 中另一个单元格代码的内容