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 会释放该对象所关联的所有系统及内存资源。

时间: 2024-10-08 11:09:11

VBA中Let与Set的区别的相关文章

VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

在VB中,属性是可以有参数的 -- 即: VB的语法,使用参数的不一定是方法,也有可能是属性!(虽然属性的本质是方法) 例一:参数当作"索引"使用 定义一个类模块,模块名称Ints.为简化模型,使用了只读属性. 1 Private arr(3) As Integer 2 3 Public Property Get ArrValue(Index As Integer) As Integer 4 ArrValue = arr(Index) 5 End Property 6 7 '初始化ar

VBA中四种自动运行的宏以及模块的含义

在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate.这些自动运行的宏是为了与Excel5和95兼容而保留下来的.现在可以使用工作簿的Open,Close,Activate,Deactivate 事件来代替它们. 那么,什么是“标准模块”呢?其实就是我们在VBE中插入的那个模块,微软称它为“标准模块”.而其余的三类:Microsoft Excel对象,

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c

lua中的pairs和ipairs区别

pairs Returns three values: the next function, the table t, and nil, so that the construction for k,v in pairs(t) do body end will iterate over all key–value pairs of table t. See function next for the caveats of modifying the table during its traver

浅谈HTTP中Get与Post的区别_转

可参考:HTTP请求中POST与GET的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作.到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息. 1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的

python类中super()和__init__()的区别

本文和大家分享的主要是python开发中super()和__init__()的区别,希望通过本文的分享,对初学者学习这部分内容有所帮助. 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class childA(Base): def __init__(self): print 'creat A ', Base.__init__(self) class chi

PHP中this,self,parent的区别

{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的. PHP5经过重写后,对OOP的支持额有了很大的飞跃,成为了具备了大部分面向对象语言的特性的语言,比PHP4有了很多的面向对象的特性.这里我主要谈的是this,self,parent 三个关键字之间的区别.从字面上来理解,分别

【转载】C#中[],List,Array,ArrayList的区别及应用

本篇文章主要是对C#中[],List,Array,ArrayList的区别及应用进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList 是针对任意类型.任意长度的. Array 和 ArrayList 是通过存储 object 实现任意类型的,所以使用时要转换.

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和