希望这是一个简单的问题,但我想要一个技术性的答案!
有什么区别:
i = 4
还有
Set i = 4
我知道后者会抛出一个错误,但我不完全理解为什么。
集用于设置对象引用,而不是分配值。
在您的情况下,它将产生一个错误。 : -)
Set分配一个对象引用。对于所有其他的分配,(隐式的,可选的,很少使用的) Let语句是正确的:
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)
来自 MSDN:
Set Keyword: 在 VBA 中,Set 关键字 有必要区分 对象的赋值和赋值 对象的默认属性。 因为默认属性不是 在 VisualBasic.NET 中支持,则 Set 关键字不需要,并且是 no 更长的支持。
在我脑海中,Set 用于将 COM 对象分配给变量。通过执行 Set,我怀疑它在底层对对象执行 AddRef ()调用来管理对象的生存期。
set用于为对象分配引用
set
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 是一个关键字,用于在 VBA 中分配对对象的引用。
例如, * 下面的例子展示了如何在 VBA 中使用 Set。
作为工作表的模糊 WS
设置 WS = ActiveWorkbook.Worksheet (“ Sheet1”)
WS.Name = “ Amit”
所以当你想要设置一个值的时候,你不需要“设置”; 否则,如果你引用一个对象,比如工作表/范围等,你需要使用“设置”。