很不错!!! 第一种方法好像是有点问题,上海、无锡好像是重复了,原因未查 我一直推崇第5种方法,对于错误处理,可以加两行代码处理 另外,运行中最好关闭屏幕更新,速度会更快一点点,关闭之前速度是0.0625,关闭之后是0.0469,运行多次数据也大致要少0.02秒左右 Sub aaa()
t = Timer
Dim i&, j&, k&, p&, arr, arr1()
Dim h As New Collection Application.ScreenUpdating = False 'UNARTHUR兄可以试试,看看关闭之后的速度
[k:k].ClearContents
p = [a65536].End(xlUp).Row
arr = Range("a1:a" & p) On Error Resume Next
For i = 1 To p
h.Add arr(i, 1), CStr(arr(i, 1))
Next i
Err.Clear
On Error GoTo 0 '清除错误处理,以后出现错误时还是有显示 c = h.Count
ReDim arr1(1 To c, 0)
For i = 1 To c
arr1(i, 0) = h(i)
Next i
Range("k1:k" & c) = arr1
t1 = Timer - t
MsgBox "用时:" & t1 & "秒" Application.ScreenUpdating = True
End Sub |