Workbook工作簿对象方法(二)

2019-10-13 15:40:35 浏览数 (2)

大家好,上节介绍过部分工作簿对象的常用方法-创建和打开,本节将继续介绍工作簿对象的激活、保存和关闭方法。

三、工作簿对象activate方法

在使用时可打开多个excel工作簿文件,但只有一个excel文件是活动状态。当需要改变excel文件的活动状态时,可以使用workbooks集合的activate方法来激活一个工作簿。

workbooks(“工作簿名称”).activate

方法较简单,这里不做演示。

四、工作簿对象save方法

保存excel工作簿,在VBA中主要是通过workbook工作簿对象的save方法和saveas方法

代码thisworkbook.save 表示保存代码所在的工作簿。

如果想将文件另存为一个新的文件,或者第一次保存一个新建的工作簿,就用saveas方法。代码模式如下:

thisworkbook.saveas filename:="文件保存的路径"

其中filename参数指文件保存的路径及文件名,如果省略路径,默认将文件保存在当前文件夹中。(注意文件名的扩展名的与原文件一致)

在使用saveas方法将工作簿另存为新文件后,将自动关闭原文件,打开新文件,如希望继续保留原文件不打开新文件,可以用savecopyas方法。

thisworkbook.savecopyas filename:=“文件保存的路径”。

示例1 保存所有工作簿

代码中定义wb变量为工作簿对象,通过for each循环语句,在所有的工作簿中循环,保存所有工作簿。

示例2 保存新建的工作簿

定义了wb变量为工作簿对象,wbname为字符串文件。wbname变量用于赋值保存文件名。将wb对象通过set语句赋值为新建的工作簿对象。

将新建的工作簿保存按wbname的名称保存(只有文件名,路径与新建文件簿位一样)

实际saveas方法有诸多参数,如下所示

Workbook对象.SaveAs(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local)

SaveAs方法的参数很多,其中:

1、所有参数均为可选参数。

2、参数FileName指定要保存的工作簿的名称。可以提供保存的路径,否则将保存到当前文件夹中。

3、参数FileFormat指定工作簿保存的格式。

4、参数Password指定保存的工作簿的密码,区分大小写。

5、参数WriteResPassword指定工作簿的写保护密码。如果使用密码保存工作簿并且在打开时未提供密码,则以只读方式打开该工作簿。

6、参数CreateBackup设置为True时,创建工作簿的备份。

五、工作簿对象close方法

关闭工作簿workbook对象使用close方法,如果是workbooks集合对象的close则是关闭所有打开的工作簿对象。

Workbooks("vba.xlsm").Close 是关闭了单个工作簿vba.xlsm,而workbooks.close则是关闭所有打开的工作簿。

在关闭工作簿时,如果excel表有修改且没有保存,那么系统会在关闭前弹窗提示是否需要保存。如果不希望出现弹窗,可以通过设置close方法的参数来修改。

下面看下close方法的完整格式。

Workbook对象.close(SaveChanges,Filename,RouteWorkbook)

1、所有参数均为可选参数。

2、参数SaveChanges指定是否保存对工作簿所作的修改。如果没有修改过工作簿,则忽略此参数。如果修改了工作簿,则使用此参数指定是否保存修改;如果参数值设置为True,则关闭时将保存修改,此时如果工作簿还没有被命名,则使用参数Filename指定的名称,若没有指定Filename参数,则要求用户输入文件名;如果此参数值设置为False,则关闭时将不会保存任何对工作簿的修改。

3、参数Filename指定保存修改的工作簿名称。

示例保存关闭工作簿

下面以保存并关闭vba.xlsm文件为例。

Workbooks("vba.xlsm").Close savechanges:=True通过简单的代码,可以实现直接保存之后关闭excel文件。

并且savechages参数可以直接省略,简写成下面的形式。


下面顺便说明下thisworkbook和activeworkbook的区别。

两者实际都application对象的属性。均返回一个workbook对象。与之前介绍工作表activesheet属性类似。

thisworkbook是对程序所在的工作簿的引用。而activeworkbook则是当前活动的工作簿的引用。如果新建的工作簿,新建的工作簿为活动工作簿。

举例如下:

ThisWorkbook.Name返回示例中代码所在工作簿名称为“工作簿1.xlsm”。而ActiveWorkbook.Name返回当前代码所在的工作簿名称为“vba.xlsm”


本节主要介绍工作簿对象的常用方法,后续会介绍application对象的属性和方法,以及事件等内容等,祝大家学快乐。


0 人点赞