excel - 使用 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
解决方案
可以避免丢失每个单元格。例如,
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
推荐阅读
- python - 选中/取消选中选定的树视图项目
- python - python中的全局变量导致UnboundLocalError
- mysql - 使用 Redis 缓存简单查询是否值得?
- python - 如何在 pygame 中为我的关卡编辑器制作保存文件?
- python - 如何在 Python 中输入功率
- oop - SOLID - 违反开闭原则
- python - “无法将 Python 对象参数转换为类型 '
'" - 使用 Cython 包装 c++ 类时出错 - java - 静态参数用作参数列表以供选择
- javascript - f选择清除选择
- time-complexity - 复杂度低于 O(log n) 而不是 O(n)