Excel点点通
优秀的Excel资源分享网站

VBA对象的方法、参数教程

方法是对象自身拥有的动作,通过使用对象的方法,可以执行与对象相关的操作,从而改变对象的状态。例如,打开工作簿中的“打开”(Open)就是Workbook对象的一个方法,“打开”这个方法的结果是向工作簿集合中添加了一个新的工作簿成员。对象的方法的使用主要在于设置方法的参数,参数为执行的操作提供了所需的数据或执行方式。此外,与可返回对象的属性类似,某些对象的方法也可以返回另一个对象。除了属性和方法,对象还包含事件。

VBA对象的方法、参数教程

一、方法的参数

为了给对象的方法提供所需操作的数据或操作方式,很多方法都包含一个或多个参数。例如,Workbooks集合有一个Add方法,它包含一个参数,用于指定新建工作簿时以哪个模板为基准。

要输入对象的方法,首先需要输入对象的名称,然后输入一个英文句点。如果对象名称的拼写正确,则会自动弹出该对象包含的属性和方法的成员列表,从中选择所需的方法并按Tab键,将方法输入到代码窗口中。按一下空格键,将会显示如图1所示的提示信息,加粗显示的部分是当前准备接收用户输入的方法的第一个参数,这里是Template。该单词用方括号括起,表示这是一个可选参数,也就是说不是必须要提供该参数的值。如果不显示可选参数的值,Excel会自动使用其默认值。

包含一个参数的方法

图1 包含一个参数的方法

有些方法包含多个参数,例如Worksheets对象的Add方法,它包含4个参数,如图2所示。这些参数都用方括号括起,因此它们都是可选参数,在使用Worksheets对象的Add方法时可以不提供任何参数的值,而使用默认设置添加新的工作表。

包含多个参数的方法

图2 包含多个参数的方法

在输入多个参数的值时,各参数值之间需要以英文逗号分隔,而且必须按照各参数的默认顺序依次输入。当输入第一个参数和一个英文逗号后,第二个参数的名称会自动加粗显示,如图3所示,从而提醒用户当前正在设置的是哪个参数。

输入不同参数时会以加粗字体提醒用户

图3 输入不同参数时会以加粗字体提醒用户

如果要省略其中的某个参数值,而跳到下一个参数值的设置上,则必须为省略的参数保留一个英文逗号。如图4所示跳过了第二个参数After,而直接设置第三个参数Count的值,因此需要为第二个参数额外保留一个英文逗号以占位。

省略某个参数的值时需要为其保留一个英文逗号

图4 省略某个参数的值时需要为其保留一个英文逗号

当然,也有一些方法不需要参数,例如Workbook对象的Save方法,该方法不包含任何参数,下面的代码用于保存当前包含代码的工作簿。

ThisWorkbook.Save

二、使用命名参数

在为一个方法设置多个参数值时,如果省略了其中的某个参数值,则必须为其保留一个英文逗号,以便让Excel可以根据逗号来正确识别参数值的对应关系。如果不想为省略的参数额外保留一个英文逗号,则可以使用命名参数的方式来设置参数值。使用命名参数的好处还在于可以按任意顺序指定参数值,以及增加代码的可读性。

在指定参数值时使用命名参数的方法是:先输入参数的名称,然后输入一个冒号和一个等号,最后输入要为参数指定的值。参数的名称不严格区分大小写。下面的代码是对上一节新建工作表的案例修改后的版本,其中使用了命名参数。参数的指定顺序与Add方法默认的参数顺序不同,此处先设置的是第三参数Count的值,然后设置的是第二参数After的值。

Worksheets.Add Count:=5, After:=Worksheets(2)

三、可返回对象的方法

与某些属性可返回新的对象类似,对象的某些方法也可以返回新的对象。例如,在使用Worksheets集合的Add方法新建工作表后,默认情况下会返回一个Worksheet对象,表示对刚刚新建的工作表的引用。

如果要在后面的代码中使用方法所返回的对象,那么通常可以将该方法的返回值赋值给一个对象变量,然后在代码中使用该变量来代替返回的对象。与使用函数的返回值时设置参数的方式类似,需要将对象的方法的所有参数值放置在一对圆括号中,然后通过使用等号将方法的返回值赋值给一个变量。

案例:在程序中使用由方法返回的对象

下面的代码将Worksheets.Add方法新建的工作表赋值给名为wks的对象变量,然后使用wks变量来设置新建工作表的名称。intIndex变量用于指定新建工作表的索引号,本例中为将新工作表放置在最后一个工作表之后,因此通过Worksheets.Count获取工作簿中包含的工作表总数。

Sub 可返回对象的方法()
Dim wks As Worksheet, intIndex As Integer
intIndex = Worksheets.Count
Set wks = Worksheets.Add(after:=Worksheets(intIndex))
wks.Name = "1月"
End Sub
赞(5647)
未经允许不得转载:Excel点点通 » VBA对象的方法、参数教程

评论 抢沙发

评论前必须登录!

 

优秀的Excel在线学习和资源分享网站

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

Excel学习路线

登录

找回密码

注册