使用 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 的更多資訊