上节概述了对象模型的基础知识,而对象的学习重点其实就是它们的属性和方法,不同对象都有诸多不同的属性和方法,后期将从常用对象的属性和方法循序渐进的展开。
本节将通过三个递进的示例,来介绍对象的属性的通用知识点。
属 性 表 示 方 法
对象的属性决定了对象的特征或者某一方面的行为。
对象的属性的表示方法是用英文逗号间隔:对象.属性。比如单元格A1的value属性,即range("a1").value。
在VBA中编写代码时写到写出对象和英文句号后,VBA会提示以供选择。
可以看到有两种图例,手指的图例就是属性。另一种扔砖头图例的就是方法。后面会再做介绍。
下面就结合实例来具体介绍对象的属性。
属 性 示 例
下面先从单元格的value值属性和worksheet的name名称属性,作为示例来入门。
示例一
在一个工作簿中有4个普通工作表,假设不知道名称,现在需要得到四个工作表的名字。显示在第一个工作表的A1:A4单元格中。最终效果如下:
这个过程其实,是先得到普通工作表的名称(即name属性),然后将值赋给单元格的值(即value属性)即可。
工作表的名称如何得到,这就需要用到上节的知识,当不知道工作表名称时,就可以使用对象集合(集合索引号)的表示方法。即worksheets(1).name得到第一个表的名称。
然后将值赋给单元格,需要明确在表1的A1单元格显示,就需要指定工作表,即Worksheets(1).Range("a1").Value = Worksheets(1).Name。
最后的简单代码如下(range对象的value是默认属性,其实也可以省略)。
示例二
下面我们换一种思路,上面的示例只有4个表,如果有20几个工作表要这样写代码太过繁琐。可以看下代码主要是range对象的参数和worksheets集合的索引号有规律的变化。涉及有规律的重复,就可以联想到使用循环结构。
代码中有规律的数值,就可以用循环结构的参数来代替,示例代码修改如下:
代码变的更加简洁易修改,其中Range("a" & i)中参数是字符串与参数的连接方法如果有遗忘,可以在VBA运算符章节中复习下。
示例三
不过上述代码只是循环到4,是因为知道只有4个普通工作表,但如果普通工作表的数量是未知或者增加了工作表呢?无法确定循环的最终值。
要确定最终值,就可以用到集合的count属性,count属性就是用来统计集合中对象的数量。(前面提到过集合也是一种特殊对象,作为对象也有属性。)示例代码修改如下:
定义了变量J,来获得普通工作表集合中普通工作表的数量。然后将循环的终值改成J。这样修改后代码就有了适用性,即使增加工作表,代码运行后也可以获得新工作表的名称。效果如下:
知 识 点
1、对象属性的表示方法:对象.属性
2、对象可以是其他对象的属性。前面介绍对象概述时已经介绍过,比如字体是单元格对象的属性,但字体本身也是对象。
同样单元格range对象其实也是worksheet的属性。
3、集合是特殊对象,也有属性。
上面实例中以workshees集合的count属性举例。是用来统计普通工作表worksheet对象的数量。
4、range对象的value属性是默认属性,在代码中可以省略。
本节介绍了对象属性的通用知识点,主要通过三个逐步递进的实例来介绍使用规则,逐步结合前面学过的知识。如果有疑问可以查看前面章节或者给我留言,祝大家学习快乐。