VBA对象属性概述

2019-10-13 15:45:44 浏览数 (1)

上节概述了对象模型的基础知识,而对象的学习重点其实就是它们的属性和方法,不同对象都有诸多不同的属性和方法,后期将从常用对象的属性和方法循序渐进的展开。

本节将通过三个递进的示例,来介绍对象的属性的通用知识点。

属 性 表 示 方 法

对象的属性决定了对象的特征或者某一方面的行为。

对象的属性的表示方法是用英文逗号间隔:对象.属性。比如单元格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属性是默认属性,在代码中可以省略。


本节介绍了对象属性的通用知识点,主要通过三个逐步递进的实例来介绍使用规则,逐步结合前面学过的知识。如果有疑问可以查看前面章节或者给我留言,祝大家学习快乐。


vba

0 人点赞