3.4.1 对象,就像冰箱里的鸡蛋
什么是对象
对象就是东西,是用代码操作和控制的东西,属于名词。
打开工作簿,工作簿就是对象;复制工作表,工作表就是对象;删除单元格,单元格就是对象……
对象的层次结构
厨房里放着冰箱,冰箱里有碗,碗里装着早餐要吃的鸡蛋。无论是厨房、冰箱、碗还是鸡蛋,都是东西,都是对象,如图3-23所示。
图3-23 厨房的结构图
厨房里除了冰箱,还有消毒柜和电饭锅;冰箱里放着装有鸡蛋的碗,还放着装着水果的盘子和装着牛奶的瓶子,如图3-23所示。
图3-24 厨房里的多个对象
一个Excel工作簿就像一间大厨房,一个工作簿里可以有多张工作表,一张工作表里有多个单元格区域,如图3-25所示。
图3-25 工作簿里的对象
一个对象可以包含其他对象,同时又包含在其他对象里,不同的对象总是这样有层次地排列着。
集合——多个同类型的对象
集合也是对象,是对多个同种类型的对象的统称。
冰箱里有很多碗,无论装着鸡蛋还是瘦肉,都属于同一类对象,可以统称为“碗”。但是这个集合里并没有装牛奶的瓶子,因为瓶子不是碗,和碗不属于一类。
一个打开的工作簿,里面有多张工作表,无论工作表的名称是什么,表里保存什么数据,它们都属于工作表集合,即:Worksheets。
怎样取到装鸡蛋的碗
要吃鸡蛋,让孩子去取。
“去厨房,把冰箱里装着鸡蛋的碗拿来。”碗存放的地点(厨房的冰箱里)以及碗的特征(装着鸡蛋)都要介绍清楚,这样,孩子才不会弄错。
VBA中怎样取到集合里的一个对象
取到想要取的对象,称为“引用对象”。
很多个工作簿,若干张工作表,数不清的单元格,怎么表示“Book1” 工作簿中“Sheet2”工作表中的“A2”单元格?
就像取冰箱里装鸡蛋的碗一样,在哪间房的冰箱里拿,拿什么碗,都要叙述清楚。
引用对象就像引用硬盘上的文件,要按从大到小的顺序逐层引用。
但并不是每一次引用对象都必须严谨地从第1层开始。
如果Book1工作簿是活动工作簿,前面的代码可以写为:
如果Sheet2工作表是活动工作表,代码甚至还可以简写为:
3.4.2 对象的属性
什么是属性
每个对象都有属性。对象的属性可以理解为该对象包含的内容或具有的特点。
苹果是有颜色的,颜色就是苹果的属性。我的衣服,衣服就是我的属性。
Sheet2工作表的A2单元格,A2单元格是Sheet2工作表的属性;A2单元格的字体,字体是A2单元格的属性;字体的颜色,颜色是字体的属性。
“的”字后面的,总是“的”字前面的对象的属性。
在VBA中,用点(.)代替“的”字:
我的衣服→我.衣服
Sheet2工作表的A2单元格的字体的颜色→Worksheets(“Sheet2”).Range(“A2”).Font.Color
对象的相对性
某些对象的某些属性,返回的是另一个对象,如Sheet1工作表的Range 属性,返回的是e对像(即单元格),但单元格本身也是一种对象。作为一种对象,它也有自己的属性,如字体(Font),而字体也是对象,也有属性,如颜色。
对象和属性是相对的。单元格相对于字体是对象,相对于工作表是属性。
如果想准确地知道Value(或其他)是方法还是属性,可以在【代码窗口】中将光标定位到它的中间,按F1键,查看帮助里的信息,如图3-26所示。
图3-26 查看Value的帮助信息
3.4.3 对象的方法
什么是方法
方法是在对象上执行的某个操作,属于动词。
如剪切单元格,剪切是在单元格上执行的操作,就是Range对象的方法;选中工作表,选中是在工作表上执行的操作,就是Wroksheet对象的方法;保存工作簿,保存就是Workbook对象的方法……
方法和属性的区别
属性返回对象包含的内容或具有的特点,如颜色、大小等。方法是对对象的一种操作,如选中、激活等。
怎样分辨方法和属性
除了通过查看帮助来分辨属性和方法,还可以在【代码窗口】中按<Ctrl+J>组合键,或者在对象的后面写上点,在自动显示的【属性/方法列表】中根据图标的颜色来分辨,带绿色图标的项是方法,其他的都是属性,如图3-27所示。
图3-27 对象的属性/方法列表
如果在对象的后面输入点后没有显示【属性/方法列表】,则先在【选项】对话框的【编辑器】选项卡里勾选【自动列出成员】复选框,如图3-27所示。
图3-28 设置自动列出成员