'使用数组可能会快点,,,
Option Explicit
Const COL As Long = 2 '第2列,自己修改
Sub test()
Dim arr, i As Long, j As Long, m As Long, t As Single
t = Timer
With ActiveSheet
arr = .UsedRange.Value
For i = 1 To UBound(arr, 1)
If arr(i, COL) <> 0 Then
m = m + 1
For j = 1 To UBound(arr, 2)
arr(m, j) = arr(i, j)
Next
End If
Next
Debug.Print Timer - t
With .[a1] '假设数据是从A1开始的
.Resize(UBound(arr, 1), UBound(arr, 2)).ClearContents '不能有合并单元格
If m > 0 Then .Resize(m, UBound(arr, 2)) = arr
End With
Debug.Print Timer - t
End With
End Sub |