在前面的内容中,我们看到了通过在对象之间加上句点可以逐步得到想要的对象,以及引用对象的省略写法。

在获得对象之后,我们就要对这个对象进行相应的操作。例如,给对象赋值,让对象做相应的动作,这些就要用到对象的属性和方法。

如何使用对象的属性和方法呢?仍然是用句点,例如:

Worksheets.Add

表示添加工作表。

Range(“A1”).Clear

表示完全清除单元格A1中的内容和格式。

Range(“A1”).Value

可以获得或设置单元格A1中的值。

Range(“A1”).Address

可以获得或设置单元格的地址表示。

……

于是,我们可以得到使用对象的属性和方法的规则:

规则3:对象.方法或者对象.属性

也就是通过在对象后加上句点来使用对象的属性和方法,如下所示。

看一看,与对象的引用相同,都是使用句点。

我们在编写VBA代码或查看别人编写的VBA代码时,会大量用到或看到这样的表示方法。实际上,这是VBA语言中最基础的结构,如下所示。

Excel VBA 句点怎么设置

现在,我们已经知道了对象有属性和方法,以及表示对象的属性及其方法的语法,那么如何描述它们的属性或方法,具体告诉对象是什么或者该做些什么呢?这就要使用参数了。

对象方法的参数

有很多书中,经常使用踢球的例子。要踢的球是一个对象,它有一个方法,就是踢,使用上面的语法表示,就是:

球.踢

或者:

Ball.Kick

踢多高,向哪个方向去踢,这就是参数要描述的内容。也就是说,方法的参数告诉踢球的具体行为:

球.踢方向:=向左,高度:=3米

或者:

Ball.Kick Direction:=Left,Height:=3

Excel VBA中,大多数对象的方法也带有参数,告诉该方法具体的行为,例如,在当前工作簿中添加工作表,使用Worksheets对象的Add方法,如果我们要将新工作表添加到名为Sheet1的工作表之后,就要使用Add方法的After参数,代码如下:

Worksheets.AddAfter:=Worksheets(“Sheet1”)

对象属性的参数

还是使用足球的例子。看到足球后,我们就知道这个球的颜色,大多数是白黑相间的颜色,假如白色有7块,黑色有6块。可以用下面的式子表示:

球.颜色(白色:=7,黑色:=6)

或者:

Ball.Color(White:=7,Black:=6)

在Excel中,不少属性也带有参数。例如,基于当前单元格A1向下偏移1行,向右偏移2列的单元格,代码表示如下:

Range(“A1”).Offset(RowOffset:=1,ColumnOffset:=2)

参数的表示方法

综合上述说明的关于表示对象方法或属性的参数的用法,可以总结出参数表示方法的规则如下:

规则4参数名:=参数值

方法或属性的参数可能不止一个,各参数之间使用逗号(,)分隔开。

Excel VBA 句点怎么设置

有些情况下,我们可以省略参数名,直接使用参数值,多个参数之间使用逗号(,)分隔。例如:

Range(“A1”).Offset(1, 2)

也表示基于当前单元格A1向下偏移1行,向右偏移2列的单元格。

注意,省略参数名虽然简便,但要严格按照参数的顺序来设置相应的参数值,即便有些参数的值无须设置,也要按其顺序使用逗号隔开。例如,基于当前单元格A1向右偏移2列的单元格:

Range(“A1”).Offset(, 2)

Range对象的Offset属性有两个参数,其顺序是:第一个参数RowOffset,第二个参数ColumnOffset,上面的代码中,虽然省略了第一个参数,但仍要使用逗号分隔。

如果加上参数名,则无须使用逗号:

Range(“A1”).Offset(ColumnOffset:=2)

因此,使用参数名加上:=设置参数是一种较好的编写代码的方法,不仅无须考虑参数的顺序,根据参数名也知道参数设置的具体含义。

对于方法的参数也是如此,在此不再赘述。

默认属性

对于对象的方法或属性来说,有些属性是默认的,也就是说,在我们没有设置属性时,对象就会自动表现出的行为。

例如,Worksheets对象的Add方法,如果我们不设置参数,执行下面的语句:

Worksheets.Add

默认为在当前工作表前添加一个工作表,新工作表插入到当前工作表的前面。

大多数情况下,我们会省略掉Range对象的Value属性,例如:

Range(“A1”).Value = “ExcelVBA”

Range(“A1”) = “ExcelVBA”

相同,将直接在单元格A1中输入文本“Excel VBA”。

发表回复