VBA 中 Sheets(String) 和 Sheets(Long) 的速度

概述

Sheets(String)Sheets(Long)这两种调用方法,都可以从Sheets集合中返回一个工作表。既然这两个功能相同,那么速度就成为了选择的关键。

测试速度的代码

' 先用 Fill 填充内容,然后用 TestSpeet 测试速度。

Sub Fill()

For i = 1 To 100000 Step 1
    Cells(i, 1) = CStr(i)
Next i

End Sub

Sub TestSpeet()

Dim i As Long
Dim a As String

For i = 1 To 100000 Step 1
    ' 下面两句中选一句执行
    a = Sheets(1).Cells(i, 1)        'Sheets(Long)
    a = Sheets("Sheet1").Cells(i, 1) 'Sheets(String)
Next i

End Sub

测试结果

测试结果的时间单位是毫秒。

第几次测试 Sheets(Long) Sheets(String)
1 609.5660 748.9382
2 611.6371 748.7220
3 611.5759 750.5656
4 611.3749 749.9504
5 609.5672 747.9031
6 611.0058 750.5208
7 610.2335 746.6654
8 611.2921 750.4843
9 609.6433 745.1653
10 612.6212 748.4685

结论

使用Sheets(String)Sheets(Long)要慢。

所以应该优先使用Sheets(Long)

猜你喜欢

转载自www.cnblogs.com/dreamofjay/p/12509085.html