VBA中Let与Set的区别

Posted ukeedy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA中Let与Set的区别相关的知识,希望对你有一定的参考价值。

Let与Set的区别

1、在“类模块”中

Property Let 语句
在Class块中,是给普通变量进行赋值操作的Property,该种Property将不能在其前面使用Set,因而将不能用户对对象变量的赋值。
Property Set 语句
在Class块中,是给对象变量进行设置引用操作的Property。
Property Get 语句
在Class块中,取得(返回)的值的Property,返回值可以是对象变量或普通变量。

2、在“普通模块”中

Let语句是对普通变量赋值,使其指向该对象,将对象引用赋给变量或属性。默认省略。

Set 语句将一个对象赋值给一个变量,使其指向该对象。将对象引用赋给变量或属性 。

 

Sub test()
Let 与 Set的区别,Let是一般变量赋值,Set是对象变量赋值
Dim a As Integer
Dim rng As Range
Let a = 3
MsgBox a
Set rng = Range("a1")
End Sub

 3、Set的语法

Set objectvar = {[New] objectexpression | Nothing}

Set 语句的语法包含下面部分:
  部分描述:
  objectvar 必需的。变量或属性的名称,遵循标准变量命名约定。
  New 可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与 Set 一起使用,则将创建该类的一个新实例。如果 objectvar 包含了一个对象引用,则在赋新值时释放该引用。不能使用 New 关键字来创建任何内部数据类型的新实例,也不能创建从属对象。
  objectexpression 必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。
  Nothing 可选的。断绝 objectvar 与任何指定对象的关联。若没有其它变量指向 objectvar 原来所引用的对象,将其赋为 Nothing 会释放该对象所关联的所有系统及内存资源。

以上是关于VBA中Let与Set的区别的主要内容,如果未能解决你的问题,请参考以下文章

jacript var let const 区别

用下面的代码解释一下javascript中var和let关键字的区别

VBA:Variant/Double 和 Double 之间的区别

在 VB6 中,Property Set 和 Property Let 有啥区别?

vba中的dim和set有啥区别

let 命令 与 var的区别