首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA对象模型和对象引用

VBA对象模型和对象引用

作者头像
无言之月
发布2019-10-14 15:51:16
2K0
发布2019-10-14 15:51:16
举报
大家好,上节简述了对象篇的基础内容,包括对象、集合、属性、方法、事件等。那么本节就来先介绍由它们共同搭建的对象模型。

理解EXCEL的对象模型,有助于我们学习掌握VBA编程。

对 象 模 型

EXCEL中的各种对象并不是孤立存在的,彼此之间都是有联系和层级关系,对象模型的概念就是用来描述对象之间关系的,构建了一个完整的体系。

上一节中其实已经提到了对象之间的层级关系,我们在平时操作时也是按这个层级关系使用。用application对象即excel主程序打开一个workbook工作簿对象,一个空白工作簿通常默认有1个或3个worksheet普通工作表对象,我们在工作表的range单元格对象中输入内容。

对象的层级结构图如下:

之所以要了解某个对象在对象模型层级中的位置,是为了编写VBA代码时可以方便引用的该对象。从而对该对象进行操作,并以特定的方式组织这些对象,使excel程序能根据需要自动完成工作任务。

对 象 引 用

学习对象模型主要是解决对象引用的问题,而初学时不容易理解。其实主要需要解决有两个主要问题?一、不同对象的表示方法。二、VBA代码中引用对象的格式。

在说明这两问题之前,先说一个平常的例子,寄信件和快递时都需要家庭地址。比如山东省烟台市莱山区鹿鸣小区3号楼1单元102室。如果此时就在莱山区内,再询问家庭住址时可以直接回答是鹿鸣小区3号楼1单元102室,而省略了前面已知的部分。

讲完这个例子再回头看这两个问题。

1、VBA中代码引用对象的格式

在VBA编写代码时, 以引用最常用的单元格对象为例,由于对象模型的层级关系,也是以类似地址的方式具指定到末级对象,对象之间以英文句号间隔,语法格式是:对象名.对象名....对象名。

如引用工作簿“工作”这个文件的工作表“表1”中的A1单元格的具体语句就是:

application.workbooks(”工作.xlsx“).worksheets("表1").range("A1")

同样语句也可以像地址一样,在一定条件下省略。执行VBA代码时,如果当前打开运行的就是工作簿对象工作.xlsx时。语句可以直接写成worksheets("表1").range("A1")。如果当前工作表对象“表1”是当前打开使用的工作表。语句就可以直接写成range("A1"),这也就是我们之前示例可以直接使用range对象的原因。(在编写代码时根据需要来省略,防止代码错误)。

2、不同对象的单独表示方法

上面说明了引用对象的格式,还需要解决的问题是语句中对象如何表示。下面会先整体概述。

application是excel主程序,直接表示即可。

range对象作为最常用对象,暂时只介绍最常用的表示方法range(”列号行号")。如range("A1")表示A1单元格,rang("A1:B5")表示A1:B5的单元格区域。作为最常用对象后续还会再作详细介绍,

对于workbook工作簿和workshet工作表两个对象表示方法此次主要介绍引用集合中对象的方法。

第一种简单的语法:对象集合("对象名")

这种方式比较容易理解,集合中某个名称的对象。对象名称需要有扩展名后缀。类似于城市中名为烟台的城市。

第二种语法为:对象集合(对象索引号)

对象索引号即对象在集合中的顺序,这与对象的名称无关,而是工作表排序和打开工作簿的顺序。

以工作表为例。“表1”和“表2”两个工作表在工作表集合中的默认排序是sheet1和sheet2,所以它们就可以分别表示为worksheets(1)和worksheets(2),再新建工作表后,名称为“sheet1"。但它的默认顺序是sheet3,可以表示为worksheets(3)。

工作簿workbook对象也类似,但它们的顺序是按工作簿打开的先后顺序来编号的。同样可以用workbook(1)这样表示。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档