希望有一個簡單的問題,但我非常喜歡這個技術性的答案!關鍵字Set在VBA中實際做了什麼?
有什麼區別:
i = 4
和
Set i = 4
在VBA
?我知道後者會拋出一個錯誤,但我不完全明白爲什麼。
希望有一個簡單的問題,但我非常喜歡這個技術性的答案!關鍵字Set在VBA中實際做了什麼?
有什麼區別:
i = 4
和
Set i = 4
在VBA
?我知道後者會拋出一個錯誤,但我不完全明白爲什麼。
set
用於指定對象的引用。 C相當於
int i;
int* ref_i;
i = 4; // Assigning a value (in VBA: i = 4)
ref_i = &i; //assigning a reference (in VBA: set ref_i = i)
Set用於設置對象引用,而不是分配值。
就你而言,它會產生一個錯誤。 :-)
Set
指定一個對象引用。對於所有其他任務(隱含的,可選的,很少使用)Let
說法正確的是:
Set object = New SomeObject
Set object = FunctionReturningAnObjectRef(SomeArgument)
Let i = 0
Let i = FunctionReturningAValue(SomeArgument)
' or, more commonly '
i = 0
i = FunctionReturningAValue(SomeArgument)
關閉我的頭頂,Set用於將COM對象分配給變量。通過執行Set,我懷疑在引擎蓋下它正在對對象執行AddRef()調用來管理它的生命週期。
Set是一個關鍵字,它用於爲VBA中的對象分配一個引用。
對於例如, *下面的示例演示如何在VBA中使用集。
昏暗的WS作爲工作表
集WS = ActiveWorkbook.Worksheets( 「工作表Sheet1」)
WS.Name = 「阿密特」
所以,當你想設置一個值,你不」 t需要「Set」;否則,如果你指的是一個對象,例如工作表/範圍等,您需要使用「設置」。
Backgrounder here:http://stackoverflow.com/a/9924325/17034 – 2012-04-19 19:33:47