vba是什么(excel表格vba是什么)

大家好,在我之前的教程里,我讲过& # 34;VBA的代码解决方案& # 34;"VBA数据库方案& # 34;"VBA和阵列方案& # 34;通过这三套教程的

大家好,在我之前的教程里,我讲过& # 34;VBA的代码解决方案& # 34;"VBA数据库方案& # 34;"VBA和阵列方案& # 34;通过这三套教程的学习,我们对VBA的基础知识和基本操作有了一定的了解。这本教材是基于上一本教材的讲解。希望你能在之前教材的基础上学习这本教材。在本教程中,我们开始解释VBA的高级内容,类和类模块的应用。今天的内容是第一讲:什么是类,什么是对象。

什么是阶级?是一个对象& # 34;灵魂& # 34;。对象可以是任何东西,而类不会做任何事情,也不会占用内存。只有当一个类变成一个对象,并使用Set语句和New关键字实例化成一个具体的对象时,它才能做一些事情并占用内存。

将类实例化为具体对象的语法是:

Dim C As类

集合C =新类别

上面的语句创建了一个名为C的对象,它的数据类型是定义的Class类。其特征在于:

使用1New关键字,您可以创建任意数量的类的新实例,并将它们存储在集合对象中。

2使用Property Let/Set/Get语句,可以编写代码来验证分配给类元素的值,也可以编写相应的代码在值发生变化时执行。例如,您可以编写代码来确保某个值是必需的属性。

类3可以定义方法(使用Sub过程和Function过程)来执行操作。

注意:与用户定义的类型不同,用户定义的数据类型具有以下特征:

1所有自定义类型变量必须在编译时声明。可以使用动态数组处理多个自定义类型,但必须使用Redim Preserve关键字。

2不能在运行时添加新的自定义类型变量。

3无法控制分配给自定义类型中元素的值。比如只能定义为整数,但如果要求是大于5的值,就无法控制。

4自定义类型仅静态存储数据。

什么是类模块、类属性和方法:

类由属性和方法组成,类本身类似于名词;属性可以作为形容词来描述类;方法是执行操作的动词。

三个类和对象的比较

我们先来看一个很简单的程序,让我们来体验一下班级的真实面貌:

Sub mynzclass1_1()

工作表(& # 34;1").使活动

范围(& # 34;A1 & # 34).Value = & # 34你好,VBA世界& # 34;

末端接头

上面代码的第二句话:Range(& # 34;A1 & # 34).Value = & # 34你好,VBA世界& # 34;

让我们发布所有这些代码,完成隐藏的代码,看看它是什么样子的:

申请。active workbook . active sheet . range(& # 34;A1 & # 34)="你好,VBA世界& # 34;

我们来解释一下:

1范围(& # 34;A1 & # 34)是一个对象,指定一个单元格。

2范围(& # 34;A1 & # 34)前面ActiveSheet也是一个对象,指定的是哪个工作表。

在活动工作表前面有另一个对象ActiveWorkbook,它指定哪个工作簿,

4活动工作簿前面还有一个应用程序,指定是哪个应用程序。

那么这里面有什么价值呢?该值是一个范围(& # 34;A1 & # 34)这个对象的一个属性。它从哪里来的?它由Range类定义。那么range是类还是对象呢?别急,我慢慢解释。希望你能通过我的讲解理解类和对象的关系。

在上面的解释中,我们提到了将类实例化为具体对象的过程。事实上,在mynzclass_1引用了一个Range类并实例化它之后,它的属性就被修改了。而在这个例子中,我们只是把它全部隐藏起来,直接隐藏到一个对象范围(& # 34;A1 & # 34)来修改其属性,但是范围(& # 34;A1 & # 34)这个对象引用了Ragne类,所以具有Range类的属性& # 34;价值& # 34;。

我们来转换一下上面的代码:

Sub mynzclass1_2()

工作表(& # 34;1").使活动

Dim RA As系列& # 39;引用范围类

set RA = Range(& # 34;A1 & # 34) '实例化集合类

拉。Value = & # 34你好,世界& # 34;'RA是一个对象。

Set RA = Nothing & # 39销毁实例化

末端接头

VBA中什么是类,什么是对象

VBA中什么是类,什么是对象

VBA中什么是类,什么是对象

这段代码是上面mynzclass1_1的原始代码,从中我们可以看出,类本身并没有直接为我们做什么,但它一直静静地隐藏在幕后,规范着我们的行为。是的,就是这个班。它通过物体的方式展现在我们面前,让我们无时无刻不与它们交流,却往往在不经意间忽略了它的存在。

现在,如果我们回到mynzclass1_1,就会很容易发现ActiveSheet其实指的是工作表类,ActiveWorkbook指的是工作簿类,Application指的是与其同名的应用程序类(这是我们经常混淆的一个概念。对象可以与其引用的类同名)。事实证明,我们已经在一个赋值语句中处理了这么多类。

那我们怎么区分类别和对象呢?其实它们经常成对的出现在我们面前,只不过一个是有形的,一个是隐蔽的。我们可以这样理解类和对象:类是一个概念或定义,每个类都有自己的特征和行为,对象是类的一个实例。所以类是对象& # 34;灵魂& # 34;它无处不在,只是你看不见。

例如:汽车

作为一个类:汽车被定义为有四个或更多的轮子,人们可以坐在上面操作它的行走工具(一个困难的定义)。这时& # 34;汽车类& # 34;它有自己的属性,比如汽车的前轮(负责转向)。汽车的前玻璃(负责挡风)等等。& # 34;汽车& # 34;这是一个抽象的概念。

而我们通常把汽车称为对象:比如丰田是汽车范畴的大对象,这个大对象里又有小对象,比如& # 34;威驰FS & # 34对象、属性:车轮为XXX品牌,前挡风玻璃为XXX品牌。这些是非常具体的属性值。

今天的内容回来了:

1什么是类?

类和对象有什么联系?

VBA中什么是类,什么是对象

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/163888.html

发表回复

登录后才能评论