「VBA基础」VBA中的对象你真的了解吗?


​前阵子很火的一张恶搞图


「VBA基础」VBA中的对象你真的了解吗?


看到来自于Excel的嘲讽了吗?

ᶘ ͡°ᴥ͡°ᶅ


这篇文章就带你认识Excel中的对象概念,了解一下Excel中的常见对象:工作簿、工作表、单元格。好好学,在Excel中一定找的到对象!


关于对象

在使用Excel开发VBA程序的时候,从对象的角度进行思考是很有帮助的。因为日常工作中我们就是手动操作这些对象。

新建工作簿、新建工作表、向单元格输入值、修改单元格边框、新建表等等,这里的工作簿、工作表、单元格、图表就是Excel中的对象。

编写VBA代码就是用宏代码的方式去操作这些对象


他们之间有严格的层次结构,先放一张工作簿和工作表单元格之间的包含关系简图,这篇文章就围绕这张简图开始说起。


「VBA基础」VBA中的对象你真的了解吗?


我们看这里的对象层次结构:Excel程序对象包含着工作簿对象,工作簿对象包含工作表对象,工作表对象又包含单元格对象。这些层次结构组成了Excel的对象模型。




→划重点:

实际上Excel程序包含200多种对象,每个对象又有自己的属性方法,一般需要的时候看帮助文件即可。帮助文件获取方式见文末。


工作簿

先来说下工作簿对象:

在Excel中做的所有事情都在工作簿中,工作簿文件常见格式有xls、xlsx、xlsm

很多学VBA的朋友,学了大半年连它们之前的区别都是模模糊糊的。上次有个朋友直接拿xlsx来让我帮助调试代码,我真是哭笑不得。


「VBA基础」VBA中的对象你真的了解吗?


➜想更详细的了解他们之间的区别的话看下面:

核心结构上:xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。


▪版本上:xls是2003版本下的文件 ,不管有没有宏程序的话都是xls文件 ,从2007开始做了区分,XLSM文件和XLSX文件都是excel2007及其以后的文件,但前者是含有宏启用,Excel中默认情况下不自动启用宏,默认是XLSX。

VBA中,如果不想保存代码,可以保存为xlsx,即可自动删除其中VBA代码,反之则保存为XLSM文件。


▪默认保存方式上:xls是03版Office Microsoft Office Excel 工作表的格式,用03版Office,新建Excel默认保存的Excel文件格式的后缀是.xls;xlsx是07版以及以后Office Microsoft Office Excel 工作表的格式,用07版以及以后版本的Office,新建Excel默认保存的的Excel文件格式后缀是.xlsx。


工作表

工作表对象也是Sheet对象。但是VBA里面还有一个WorkSheet对象。他们之间到底是什么区别呢?!


通俗来说,Sheet是统称,Worksheet仅代表Sheet对象中的工作表的一种,Sheet对象还有其它类型的工作表,例如图表工作表、Excel 4.0宏工作表(也称作XLM文件)和Excel 5.0对话框工作表(允许创建自定义对话框)。


默认情况下,我们点击+号,新建的就是日常使用的工作表WorkSheet对象。


「VBA基础」VBA中的对象你真的了解吗?


但是如果右键,点【插入】的话,就会有这几种不太常见的Sheet对象

「VBA基础」VBA中的对象你真的了解吗?


这些被冷落的孩子藏在这么隐蔽的地方。

「VBA基础」VBA中的对象你真的了解吗?


➜还有人对WorkSheets、WorkSheet分不清楚

顾名思义,有个"s"就是复数,Worksheets是Worksheet的集合,Sheets是sheet的集合,worksheets是sheets的子集。

我们一般在定义变量类型的时候使用WorkSheet:

<code>

Dim

sht As Worksheet/<code>


我们一般在遍历工作表的时候使用WorkSheets

<code>

Sub

遍历工作表()

For

Each

sht

In

ThisWorkbook

.Worksheets

MsgBox

sht

.Name

NextEnd

Sub

/<code>


或者引用某个工作表的时候使用

<code>

WorkSheets

(

"工作表名"

)/<code>

来引用相应的工作表。

集合的Count属性返回工作簿中工作表的数量,而Sheets集合的Count属性则返回工作簿中所有工作表的数量,包含图表工作表和工作表。

一般来说,一个工作簿中,只包含一般工作表(没图表、宏表……)。Count数量也等,所以很多人把Sheets当作Worksheets的简写。


4单元格

单元格是Excel中最小单元,在Excel VBA中很多操作最终都是对于单元格的操作。

关于单元格对象的引用、属性、方法,请看我之前的文章。这里不做讲解。


分享到:


相關文章: