|
楼主 |
发表于 2009-6-24 16:54
|
显示全部楼层
第11部分 其他应用
技巧190 优化代码
190-4 使用With语句引用对象
在需要重复引用同一个对象时可以使用With语句来获得较快的运行速度,如下面的代码所示。- #001 Sub WithSta()
- #002 Dim i As Integer
- #003 Dim t As Date
- #004 Dim t1 As String
- #005 Dim t2 As String
- #006 t = Timer
- #007 For i = 1 To 5000
- #008 Sheets("Sheet1").Cells(1, 1) = 10
- #009 Sheets("Sheet1").Cells(1, 2) = 10
- #010 Sheets("Sheet1").Cells(1, 3) = 10
- #011 Sheets("Sheet1").Cells(1, 4) = 10
- #012 Sheets("Sheet1").Cells(1, 5) = 10
- #013 Next
- #014 t1 = Timer - t
- #015 t = Timer
- #016 With Sheets("Sheet1")
- #017 For i = 1 To 5000
- #018 .Cells(1, 1) = 10
- #019 .Cells(1, 2) = 10
- #020 .Cells(1, 3) = 10
- #021 .Cells(1, 4) = 10
- #022 .Cells(1, 5) = 10
- #023 Next
- #024 End With
- #025 t2 = Timer - t
- #026 MsgBox "第一次运行时间:" & Format(t1, "0.00000") & "秒" _
- #027 & Chr(13) & "第二次运行时间:" & Format(t2, "0.00000") & "秒"
- #028 End Sub
复制代码 代码解析:
WithSta过程在单元格填充时使用With语句来引用工作表对象从而获得较快的运行速度。
With语句在一个单一对象或一个用户定义类型上执行一系列的语句,语法如下:
With Object
[statements]
End With
参数object是必需的,一个对象或用户自定义类型的名称。
参数statements是可选的,要执行的一条或多条语句。
With语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。在运行时只需引用对象一次而不是在每个属性赋值时都要引用,从而获得较快的运行速度。
运行WithSta过程,消息框显示两种方法的运行时间,可以看出使用With语句来引用工作表对象的运行速度较快,如图所示。
|
|