当前位置:  开发笔记 > 后端 > 正文

关键字Set在VBA中实际做了什么?

如何解决《关键字Set在VBA中实际做了什么?》经验,为你挑选了4个好方法。

希望这是一个简单的问题,但我非常喜欢这个技术答案!

有什么区别:

i = 4

Set i = 4

在VBA?我知道后者会抛出错误,但我不完全理解为什么.



1> Treb..:

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)


不一样,没有.但足够让我理解这个概念.
VB对象引用与C指针不完全相同.VB中没有"&i"的等价物.

2> Tomalak..:

在您的情况下,它会产生错误.:-)

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)



3> Galwegian..:

来自MSDN:

设置关键字: 在VBA中,必须使用Set关键字来区分对象的赋值和对象的默认属性的赋值.由于Visual Basic .NET不支持默认属性,因此不再需要Set关键字,也不再支持.


非常感谢MSDN的摘录.所有其他答案,即使是被接受的答案也都错过了重点.'set'是关于DEFAULT PROPERTY的.请阅读http://stackoverflow.com/a/9924325/717732
复制MSDN时,至少是正确的文章.这个是指VB.NET,而不是VBA.

4> LeppyR64..:

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

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有