首页 > 解决方案 > 使用 VBA 在 Excel 中修剪 100 万行的最快方法是什么?

问题描述

您可能知道 Excel 有 100 万行的物理限制(好吧,它的 1,048,576 行)。我正在尝试以最快的方式修剪包含 100 万行的数据。

现在我正在使用:

Private Sub CommandButton1_Click()
Dim cell As Range
On Error GoTo errHandler
Application.ScreenUpdating = False
For Each cell In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
errHandler:
    If err.Number = 1004 Then
        Exit Sub
    End If
cell = WorksheetFunction.Trim(cell)
cell.NumberFormat = "@"
Next cell
Application.ScreenUpdating = True
End Sub

标签: excelvbaperformance

解决方案


可以避免丢失每个单元格。例如,

Sub test()
With Range("A1:A3")
.Value = Evaluate("Trim(" & Range("A1:A3").Address & ")")
End With
End Sub

如果常数范围不相邻,那么尝试..

根据下面的评论进行编辑

Private Sub CommandButton1_Click()
Dim rng As Range, ar As Range
Application.ScreenUpdating = False
Set rng = ActiveSheet.ListObjects("Table1") _
        .Range.Offset(1).SpecialCells(xlCellTypeConstants)

For Each ar In rng.Areas
ar.Value = Application.Trim(ar)
Next ar

Application.ScreenUpdating = True
End Sub

推荐阅读