概述
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)
。