使用 With 块
与块一起使用可以加速运行宏的过程。而是编写范围,图表名称,工作表等,你可以使用如下所示的块;
With ActiveChart
.Parent.Width = 400
.Parent.Height = 145
.Parent.Top = 77.5 + 165 * step - replacer * 15
.Parent.Left = 5
End With
哪个比这更快:
ActiveChart.Parent.Width = 400
ActiveChart.Parent.Height = 145
ActiveChart.Parent.Top = 77.5 + 165 * step - replacer * 15
ActiveChart.Parent.Left = 5
笔记:
-
输入 With 块后,无法更改对象。因此,你不能使用单个 With 语句来影响许多不同的对象
-
不要跳入或跳出 With 块。如果执行 With 块中的语句,但未执行 With 或 End With 语句,则包含对该对象的引用的临时变量将保留在内存中,直到你退出该过程
-
不要在语句中循环,特别是如果缓存的对象用作迭代器
-
你可以通过将一个 With 块放在另一个中来嵌套 With 语句。但是,由于外部 With 块的成员在内部 With 块中被屏蔽,因此必须在内部 With 块中为外部 With 块中的对象的任何成员提供完全限定的对象引用。
嵌套示例:
此示例使用 With 语句在单个对象上执行一系列语句。
对象及其属性是通用名称,仅用于说明目的。
With MyObject
.Height = 100 'Same as MyObject.Height = 100.
.Caption = "Hello World" 'Same as MyObject.Caption = "Hello World".
With .Font
.Color = Red 'Same as MyObject.Font.Color = Red.
.Bold = True 'Same as MyObject.Font.Bold = True.
MyObject.Height = 200 'Inner-most With refers to MyObject.Font (must be qualified
End With
End With
有关 MSDN 的更多信息