ZetCode

VBScript Excel.Worksheet 对象

最后修改于 2025 年 4 月 9 日

VBScript 中的 Excel.Worksheet 对象代表 Excel 工作簿中的单个工作表。它提供了用于操作工作表数据和格式的方法和属性。此对象是 Excel 自动化接口的一部分,可以通过 VBScript 访问。

使用 Worksheet,您可以读取和写入单元格值、设置单元格格式以及管理工作表结构。它是使用 VBScript 自动执行 Excel 任务的关键。本教程通过实际示例涵盖 Worksheet 的用法。

工作表对象概述

Worksheet 对象是 Worksheets 集合的成员。每个工作表包含按行和列组织的单元格。您可以通过名称或索引从集合中访问工作表。

关键属性包括 NameCellsRange。重要方法包括 ActivateCopyDelete。理解此对象有助于创建可靠的 Excel 自动化脚本。

访问工作表

此示例演示了如何访问 Excel 工作簿中的工作表。它同时显示了按名称和按索引的方法。该脚本创建一个 Excel 实例并访问第一个工作表。

access_worksheet.vbs
Set excel = CreateObject("Excel.Application")
Set workbook = excel.Workbooks.Add()

' Access by index (1-based)
Set sheet1 = workbook.Worksheets(1)

' Access by name
Set sheet2 = workbook.Worksheets.Add()
sheet2.Name = "DataSheet"
Set namedSheet = workbook.Worksheets("DataSheet")

excel.Visible = True
WScript.Echo "Active sheet: " & namedSheet.Name

' Cleanup
Set namedSheet = Nothing
Set sheet1 = Nothing
Set workbook = Nothing
Set excel = Nothing

该脚本创建一个 Excel 应用程序并添加一个新的工作簿。它通过索引(1)访问第一个工作表,并通过名称访问另一个工作表。使用 Name 属性显示工作表名称。

将数据写入单元格

此示例展示了如何将数据写入工作表单元格。它同时演示了单个单元格访问和范围操作。值被写入工作表中的特定单元格。

write_cells.vbs
Set excel = CreateObject("Excel.Application")
Set workbook = excel.Workbooks.Add()
Set sheet = workbook.Worksheets(1)

' Write to individual cells
sheet.Cells(1, 1).Value = "Product"
sheet.Cells(1, 2).Value = "Price"

' Write using Range
sheet.Range("A2").Value = "Laptop"
sheet.Range("B2").Value = 999.99

' Write to multiple cells
sheet.Range("A3:B3").Value = Array("Phone", 599.99)

excel.Visible = True

' Cleanup
Set sheet = Nothing
Set workbook = Nothing
Set excel = Nothing

该脚本将标题写入第 1 行,并将产品数据放在下方。它同时使用了 CellsRange 属性。Array 函数一次写入多个值。Excel 窗口将可见以显示结果。

从工作表读取数据

此示例演示了如何从工作表单元格读取数据。它展示了如何从单个单元格和范围检索值。读取的值使用 WScript.Echo 显示。

read_cells.vbs
Set excel = CreateObject("Excel.Application")
Set workbook = excel.Workbooks.Add()
Set sheet = workbook.Worksheets(1)

' Write sample data
sheet.Range("A1:B2").Value = Array(Array("Item", "Qty"), Array("Apples", 5))

' Read individual cell
item = sheet.Cells(2, 1).Value
quantity = sheet.Cells(2, 2).Value

' Read range
Set dataRange = sheet.Range("A1:B2")
WScript.Echo "Data range has " & dataRange.Rows.Count & " rows"

' Display values
WScript.Echo item & ": " & quantity

' Cleanup
Set dataRange = Nothing
Set sheet = Nothing
Set workbook = Nothing
Set excel = Nothing

该脚本首先将示例数据写入一个范围。然后它从特定单元格和整个范围读取值。显示范围的行数,然后是特定单元格的值。

格式化工作表单元格

此示例演示了工作表中的基本单元格格式设置。它展示了如何设置字体属性、单元格颜色和数字格式。格式设置使数据更具可读性和专业性。

format_cells.vbs
Set excel = CreateObject("Excel.Application")
Set workbook = excel.Workbooks.Add()
Set sheet = workbook.Worksheets(1)

' Write data
sheet.Range("A1:B1").Value = Array("Date", "Amount")
sheet.Range("A2:B2").Value = Array(Date(), 1250.75)

' Format headers
With sheet.Range("A1:B1").Font
    .Bold = True
    .Color = RGB(255, 255, 255)
End With

' Format cells
sheet.Range("A1:B1").Interior.Color = RGB(0, 0, 128)
sheet.Columns("A").NumberFormat = "mm/dd/yyyy"
sheet.Columns("B").NumberFormat = "$#,##0.00"

excel.Visible = True

' Cleanup
Set sheet = Nothing
Set workbook = Nothing
Set excel = Nothing

该脚本将写入示例数据并应用各种格式选项。标题获得白色粗体文本和深蓝色背景。日期和货币列获得适当的数字格式。Excel 窗口将可见以显示结果。

处理多个工作表

此示例展示了如何处理工作簿中的多个工作表。它演示了添加、命名和复制工作表。该脚本还展示了如何在工作表之间导航。

multiple_sheets.vbs
Set excel = CreateObject("Excel.Application")
Set workbook = excel.Workbooks.Add()

' Add and name new worksheets
Set sheet1 = workbook.Worksheets(1)
sheet1.Name = "Main"

Set sheet2 = workbook.Worksheets.Add()
sheet2.Name = "Backup"

' Copy data between sheets
sheet1.Range("A1").Value = "Original Data"
sheet1.Range("A1").Copy sheet2.Range("A1")

' Activate different sheets
sheet2.Activate
WScript.Echo "Active sheet: " & excel.ActiveSheet.Name

excel.Visible = True

' Cleanup
Set sheet2 = Nothing
Set sheet1 = Nothing
Set workbook = Nothing
Set excel = Nothing

该脚本创建一个包含两个已命名工作簿的工作簿。它将数据从第一个工作表复制到第二个工作表。Activate 方法用于在工作表之间切换。在显示 Excel 之前,将显示活动工作表的名称。

来源

Excel 工作表对象文档

在本文中,我们探讨了 VBScript 中的 Worksheet 对象,涵盖了它的用法和实际应用。从基本单元格操作到格式设置和多工作表管理,这些示例展示了 Excel 自动化。有了这些知识,您就可以创建强大的 Excel 自动化脚本。

作者

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

列出所有 VBScript 教程