gpt4 book ai didi

excel - 加快Excel中列的删除速度

转载 作者:行者123 更新时间:2023-12-02 12:38:14 25 4
gpt4 key购买 nike

我正在使用此公式删除工作表中的空列。但删除它们大约需要15-20分钟。我可以以某种方式加快这个过程吗?奇怪的是,它需要这么长时间,而且我只处理 100 列。

For j = 1 To 5
For i = 40 To 146
If Sheet8.cells(4, i) = "" Then
Columns(i).EntireColumn.Delete
End If
Next i
Next j

最佳答案

If you have real bank cells use @Patrick Honorez answer using SpecialCells(xlCellTypeBlanks) which is faster.

但是,如果您没有真正的空白单元格(例如显示为 "" 的公式),那么您可以使用以下方法:

Dim DeleteRange As Range

With sheet8
Dim i As Long
For i = 40 To 146
If .Cells(4, i).Value = vbNullString Then 'vbNullString = ""
If DeleteRange Is Nothing Then
Set DeleteRange = .Columns(i)
Else
Set DeleteRange = Union(DeleteRange, .Columns(i))
End If
End If
Next i
End With

If Not DeleteRange Is Nothing Then 'check if there is something to delete
DeleteRange.EntireColumn.Delete
End If

它会在DeleteRange中收集您要删除的所有列,然后立即删除它们。这比单独删除每一列要快,因为每个删除操作都需要时间(这里我们只有一个删除操作)。

请注意,我们不需要在此处向后循环,因为我们只收集循环内的列,但删除操作发生在循环之后,因此它根本不会影响循环计数。

关于excel - 加快Excel中列的删除速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887698/

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