前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Workbook工作簿对象方法(二)

Workbook工作簿对象方法(二)

作者头像
无言之月
发布2019-10-13 15:40:35
4.2K0
发布2019-10-13 15:40:35
举报

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

三、工作簿对象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对象的属性和方法,以及事件等内容等,祝大家学快乐。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档