gpt4 book ai didi

Excel VBA 自动筛选 > 删除空行

转载 作者:行者123 更新时间:2023-12-04 21:55:26 28 4
gpt4 key购买 nike

我们有一张用于分析详细招标过程的工作表,并希望删除任何空行。

每个项目的范围可能会有所不同,最多可能有 170 列和 6000 行。

我测试过的代码正在运行,在一个大约有 . 40 列和 4750 行,运行只需不到 10 分钟。

寻找任何更优雅的解决方案来缩短这个时间。目前,代码将自动过滤每一列的空白,想知道是否即使是被过滤的空列也会减慢整个过程的速度?

在下面的代码中,为了便于查看,我删除了大部分自动过滤字段,但它过滤了 1-175 中的每个字段。

Sub DeleteEmptyRows()

With Sheets("Detailed Comparison")
Application.DisplayAlerts = False
.AutoFilterMode = False
Application.ScreenUpdating = False

With .Range("F24:FY6000")
.AutoFilter
.AutoFilter Field:=1, Criteria1:="="
.AutoFilter Field:=2, Criteria1:="="
.AutoFilter Field:=175, Criteria1:="="
End With

With .Range("F25:FY6000").SpecialCells(xlCellTypeVisible).Rows.Delete
End With

Application.DisplayAlerts = True

.AutoFilterMode = False
Application.ScreenUpdating = True
End With

End Sub

最佳答案

您可以添加一个额外的列,其中包含该行所有非空字段的计数 - 例如=COUNTA(F24:FY24) - 然后过滤该列中值 = 0 的行。

我没有测试过这个,但猜测它应该更快......

关于Excel VBA 自动筛选 > 删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45841934/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com