希望一个简单的问题,但我很喜欢一个技术性的回答这个!

是什么区别:

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分配一个对象引用。对于所有其他任务(隐含的,可选的,很少使用的)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

  

设置关键字:在VBA,Set关键字   是必要的区分   的对象和分配的分配   对象的默认属性。   由于默认属性不   支持在Visual Basic .NET中,   是不是需要设置关键字和无   不再受支持。

设置用于设置对象引用,而不是分配值。

我的头顶部,设置用于COM对象赋给变量。通过这样做一套我怀疑是引擎盖下它做一个的AddRef()调用的对象来管理它的生命周期。

所以,当你想设置一个值,你不需要“设置”;否则,如果你指的是一个对象,例如工作表/范围等,则需要使用“设置”。

Set是一个关键字,它是用来分配给在一个VBA对象的引用。

有关例如 *下面的实施例显示了如何在VBA使用集。

昏暗WS作为工作表

设置WS = ActiveWorkbook.Worksheets( “工作表Sheet”)

WS.Name = “阿米特”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top