ZetCode

VBScript Excel.Workbook 对象

最后修改于 2025 年 4 月 9 日

VBScript 中的 Excel.Workbook 对象代表一个 Excel 工作簿文件。它是用于自动化的 Excel 对象模型的一部分。此对象提供了以编程方式操作 Excel 工作簿的方法和属性。通过 VBScript,您可以创建、打开、修改和保存 Excel 文件。

Workbook 对象通过 Excel Application 对象进行访问。它们包含 Worksheets 集合和各种工作簿特定的属性。本教程将通过实际示例介绍 Workbook 对象,以演示其在自动化场景中的用法。

Excel.Workbook 对象概述

Workbook 对象是 VBScript 中处理 Excel 文件的核心对象。它代表一个单独的 .xls 或 .xlsx 文件。该对象提供了对所有工作表、图表和工作簿级设置的访问。

关键属性包括 NamePathWorksheets。重要方法包括 SaveCloseSaveAs。理解此对象对于使用 VBScript 进行 Excel 自动化至关重要。

打开现有工作簿

此示例演示如何使用 VBScript 打开现有的 Excel 工作簿。该脚本创建一个 Excel 应用程序实例并打开指定的文件。然后,它显示有关工作簿的基本信息。

open_workbook.vbs
Set excelApp = CreateObject("Excel.Application")
Set workbook = excelApp.Workbooks.Open("C:\Reports\Sales.xlsx")

WScript.Echo "Workbook Name: " & workbook.Name
WScript.Echo "Path: " & workbook.Path

workbook.Close
excelApp.Quit

Set workbook = Nothing
Set excelApp = Nothing

该脚本创建一个 Excel 应用程序对象并打开“Sales.xlsx”。在关闭它之前,它会显示工作簿名称和路径。始终使用 Set obj = Nothing 来释放对象,以防止内存泄漏。

创建新工作簿

此示例展示了如何使用 VBScript 创建一个全新的 Excel 工作簿。Workbooks 集合的 Add 方法创建一个新工作簿。默认工作簿包含三个工作表。

create_workbook.vbs
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = True ' Make Excel visible

Set workbook = excelApp.Workbooks.Add

WScript.Echo "New workbook created with " & workbook.Worksheets.Count & " sheets"
workbook.SaveAs "C:\Reports\NewReport.xlsx"

Set workbook = Nothing
Set excelApp = Nothing

该脚本创建一个可见的 Excel 实例并添加一个新的工作簿。它显示工作表数量并保存文件。Visible 属性使 Excel 在开发过程中可见,但在生产环境中应设为 False。

保存和关闭工作簿

此示例演示了正确的工作簿保存和关闭过程。它展示了对现有文件的 Save 和对新文件的 SaveAs。始终正确关闭工作簿以避免文件锁定。

save_workbook.vbs
Set excelApp = CreateObject("Excel.Application")
Set workbook = excelApp.Workbooks.Add

' Add data to worksheet
workbook.Worksheets(1).Cells(1, 1).Value = "Sample Data"

' Save options
workbook.SaveAs "C:\Reports\Sample.xlsx" ' Save new file
' workbook.Save ' Use for existing files

workbook.Close False ' Close without saving changes
excelApp.Quit

Set workbook = Nothing
Set excelApp = Nothing

该脚本创建一个工作簿,添加数据,然后将其保存。Close 方法的参数决定是否保存更改。使用 Quit 完全关闭 Excel 应用程序。

处理工作簿中的工作表

此示例展示了如何访问和操作工作簿中的工作表。Worksheets 集合包含工作簿中的所有工作表。您可以以编程方式添加、删除和修改工作表。

workbook_worksheets.vbs
Set excelApp = CreateObject("Excel.Application")
Set workbook = excelApp.Workbooks.Add

' Add a new worksheet
Set newSheet = workbook.Worksheets.Add
newSheet.Name = "Data Sheet"

' Access existing sheet
Set sheet1 = workbook.Worksheets(1)
sheet1.Cells(1, 1).Value = "Header"

WScript.Echo "Sheet count: " & workbook.Worksheets.Count

workbook.Close False
excelApp.Quit

Set sheet1 = Nothing
Set newSheet = Nothing
Set workbook = Nothing
Set excelApp = Nothing

该脚本添加了一个新的工作表并为其重命名。然后,它访问第一个工作表以添加数据。在 VBScript 中,Worksheets 集合是基于 1 索引的。完成所有操作后,请务必清理所有对象。

保护和取消保护工作簿

此示例演示了工作簿保护功能。您可以保护工作簿结构以防止工作表被修改。可以带密码或不带密码应用保护。

protect_workbook.vbs
Set excelApp = CreateObject("Excel.Application")
Set workbook = excelApp.Workbooks.Add

' Protect workbook structure
workbook.Protect "mypassword", True, False

WScript.Echo "Workbook protected: " & workbook.ProtectStructure

' Unprotect workbook
workbook.Unprotect "mypassword"

workbook.Close False
excelApp.Quit

Set workbook = Nothing
Set excelApp = Nothing

该脚本使用密码保护工作簿并验证保护状态。然后,它取消保护工作簿。工作簿保护与工作表保护(保护单元格内容)不同。

来源

Excel 工作簿对象文档

在本文中,我们探讨了 VBScript 中的 Excel.Workbook 对象,涵盖了其用法和实际应用。从基本操作到工作簿保护,这些示例演示了 Excel 自动化。有了这些知识,您就可以使用 VBScript 高效地自动化 Excel 任务。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有多年的编程经验。我自 2007 年以来一直撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有八年以上的经验。

列出所有 VBScript 教程