Excel VBA:打开与关闭工作簿——Workbooks对象

Workbooks 对象

Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合。

说明

有关使用一个 Workbook 对象的详细信息,请参阅 Workbook 对象。

示例

使用 Workbooks 属性可返回 Workbooks 集合。下例关闭所有打开的工作簿。

Workbooks.Close

使用 Add 方法可创建一个新空工作簿并将它添加到集合。下例给 Microsoft Excel 添加一个新空工作簿。

Workbooks.Add

使用 Open 方法可打开一个文件。这样会为打开的文件创建一个新工作簿。下例将文件 Array.xls 打开为只读工作簿。

Workbooks.Open FileName:="Array.xls", ReadOnly:=True
Workbooks 对象成员

Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合。

方法

 名称说明
 Add新建一个工作表。新工作表将成为活动工作表。
 CanCheckOut如果 Microsoft Excel 可以将指定的工作簿从服务器签出,则该值为 TrueBoolean 类型,可读写。
 CheckOut返回一个 String 对象,该对象表示一个将从服务器签出到本机进行编辑的指定工作簿。
 Close关闭对象。
 Open打开一个工作簿。
 OpenDatabase返回一个 Workbook 对象,该对象代表一个数据库。
 OpenText载入一个文本文件,并将其作为包含单个工作表的新工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。
 OpenXML打开一个 XML 数据文件。返回一个 Workbook 对象。

属性

 名称说明
 Application如果不使用对象识别符,则该属性返回一个代表 Microsoft Excel 应用程序的 Application 对象。如果使用对象识别符,则该属性返回一个代表指定对象的创建程序的 Application 对象(可对一个 OLE 自动化对象使用该属性来返回该对象的应用程序)。只读。
 Count返回一个 Long 值,它代表集合中对象的数量。
 Creator返回一个 32 位整数,该整数指示创建对象的应用程序。只读 Long 类型。
 Item从集合中返回一个对象。
 Parent返回指定对象的父对象。只读。

 

Workbook 对象

代表一个 Microsoft Excel 工作簿.

说明

Workbook 对象是 Workbooks 集合的成员。Workbooks 集合包含 Microsoft Excel 中当前打开的所有 Workbook 对象。

ThisWorkbook 属性

ThisWorkbook 属性返回运行 Visual Basic 代码的工作簿。在大多数情况下,该工作簿与活动工作簿是同一个。但是,如果 Visual Basic 代码是加载宏的组成部分,ThisWorkbook 属性就不会返回活动工作簿。此时,活动工作簿是调用该加载宏的工作簿,而 ThisWorkbook 属性返回加载宏工作簿。

如果用 Visual Basic 代码创建加载宏,那么对于那些编译到加载宏中的工作簿,在其中运行的语句应当用 ThisWorkbook 属性加以限定。

示例

使用 Workbooks(index)(其中index 是工作簿名称或索引号)可返回一个 Workbook 对象。下例激活工作簿一。

Workbooks(1).Activate

编号指示创建或打开工作簿的顺序。Workbooks(1) 是创建的第一个工作簿,而 Workbooks(Workbooks.Count)Workbooks 是最后一个。激活某工作簿并不更改其索引号。所有工作簿均包括在索引计数中,即便是隐藏工作簿也是如此。

Name 属性返回工作簿名称。您不能通过使用此属性来设置该名称;如果您需要更改该名称,请使用 SaveAs 方法,将该工作簿保存为其他名称。下例激活名为“Cogs.xls”的工作簿(该工作簿必须已经在 Microsoft Excel 中打开)中的 Sheet1。

Workbooks("Cogs.xls").Worksheets("Sheet1").Activate

ActiveWorkbook 属性返回当前处于活动状态的工作簿。下例设置活动工作簿作者的名称。

ActiveWorkbook.Author = "Jean Selva"

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 VBA 宏来合并多个 Excel 工作簿。以下是一个简单的示例代码: ```VBA Sub MergeWorkbooks() Dim Path As String, Filename As String, Sheet As Worksheet Dim LastRow As Long, LastColumn As Long, StartRow As Long, StartColumn As Long Dim DestSheet As Worksheet, DestWorkbook As Workbook '设置目标工作簿工作表 Set DestWorkbook = ThisWorkbook Set DestSheet = DestWorkbook.Worksheets("Sheet1") '设置源工作簿的路径 Path = "C:\MyFolder\" '循环遍历所有源工作簿 Filename = Dir(Path & "*.xlsx") Do While Filename <> "" '打开工作簿并复制数据 Workbooks.Open Filename:=Path & Filename, ReadOnly:=True Set Sheet = ActiveWorkbook.Worksheets(1) LastRow = Sheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = Sheet.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column StartRow = DestSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 StartColumn = DestSheet.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1 Sheet.Range(Sheet.Cells(1, 1), Sheet.Cells(LastRow, LastColumn)).Copy DestSheet.Cells(StartRow, StartColumn) '关闭工作簿 Workbooks(Filename).Close '获取下一个源工作簿的文件名 Filename = Dir() Loop End Sub ``` 在上面的代码中,您需要设置以下内容: - `Path` 变量:指定源工作簿所在的文件夹路径。 - `DestWorkbook` 变量:指定目标工作簿。 - `DestSheet` 变量:指定目标工作表。 - `Sheet` 对象:表示当前打开的源工作簿中的第一个工作表。如果您需要合并其他工作表,请使用不同的变量和循环来遍历它们。 请注意,上述代码仅适用于在同一个 Excel 实例中打开工作簿。如果您需要处理不同的 Excel 实例中的工作簿,您需要使用更复杂的代码来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值