VBA Excel 实践(四)Excel自身对象简介及Excel对象的引用

本文详细介绍了使用VBA编程操作Excel的基本对象,包括Application、WorkBook、WorkSheet和Range,展示了如何通过代码实现对Excel文件的打开、关闭、保存、单元格读写等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

上一张介绍了窗体,主要目的是可以输入各种过滤条件。那么怎么展示呢?我们之前已经确定要使用excel本身来展示过滤(查询)结果。本章对我们要操作的excel的元素进行简单介绍,包括我们要使用的基本对象,对象的方法、属性。

一、Excel基本对象简介

我们要使用程序去操作Excel表格,那么就必须告诉程序我们操作的对象是什么?Excel中我们需要操作的对象可以分这么几个:

  1. Excel本身(Application),比如打开,关闭,保存
  2. 工作簿(WorkBook)
  3. 工作页签(WorkSheet)
  4. 单元格(Rang)
  • 他们基本的层次关系如下图:

当然这些最基础的对象,也是最常用的对象。 还有如图表对象chart等等

二、对象的引用

2.1 Application对象

Application对象代表整个 Microsoft Excel 应用程序

Application 对象包括:

应用程序范围的设置和选项。

返回顶级对象的方法,如 ActiveCellActiveSheet 等。

  • 示例1:

使用 Application 属性可返回 Application 对象。下例对 Application 对象应用 Windows 属性。

sub test
    Application.Windows("book1.xls").Activate
end sub
  • 示例2:

Application.ActiveCell 属性,返回range对象

请仔细区分活动单元格和选定区域。活动单元格为选定区域内部的一个单元格。而选定区域可以包含多个单元格,但只有一个单元格为活动单元格。下列表达式都是返回活动单元格,并且都是等效的,add1和add2是相同的值。

Sub test()
    Dim add1, add2 As String
    add1 = Application.ActiveCell.Address
    add2 = ActiveCell.Address
    MsgBox add1 & add2
End Sub

Application.ActiveChart 属性,返回chart对象

Application.ActiveSheet属性,返回sheet对象

Application.ActiveWorkbook属性,返回workbook对象

2.2 WorkBook对象

workbook代表一个 Microsoft Excel 工作簿。workbook对应的还有一个workbooks对象,Workbook 对象是 Workbooks 集合的成员。Workbooks 集合包含 Microsoft Excel 中当前打开的所有 Workbook 对象。

  • 示例:

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

先使用Workbooks的add方法创建一个工作簿,注释。然后在使用count方法查看由几个工作簿,最后使工作簿1激活。

Sub test()
    'Workbooks.add (xlWBATChart)
    MsgBox Workbooks.Count & Workbooks(2).Name
    Workbooks(1).Activate
End Sub

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

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

2.3 WorkSheet对象

WorkSheet对象代表一个工作表。WorkSheet对应的还有一个WorkSheets对象

Worksheet 对象是 Worksheets 集合的成员。Worksheets 集合包含某个工作簿中所有的 Worksheet 对象。

Worksheet 对象也是 Sheets 集合的成员。Sheets 集合包含工作簿中所有的工作表(图表工作表和工作表)。

  • 示例1:

使用 Worksheets(index)(其中index 是工作表索引号或名称)可返回一个 Worksheet 对象。下例隐藏活动工作簿中的工作表一。

Sub test()
    Worksheets(1).Visible = False
End Sub

工作表索引号指示该工作表在工作簿的标签栏上的位置。Worksheets(1) 是工作簿中第一个(最左边的)工作表,而 Worksheets(Worksheets.Count) 是最后一个。所有工作表均包括在索引计数中,即便是隐藏工作表也是如此。

执行上述命令的结果比较:

执行前:sheet4存在

执行后:sheet4隐藏了

  • 示例2:

使用 Add 方法可创建一个新工作表并将它添加到集合。下例将两个新工作表添加到活动工作簿的工作表一之前

Sub test()
    Worksheets.add Count:=2, Before:=Sheets(1)
End Sub

执行前:

执行后:

 2.4 Range对象

Range对象代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域 。

返回Range 对象的属性和方法:

  1. Range 属性
  2. Cells 属性
  3. RangeCells
  4. Offset 属性
  5. Union 方法
  • 示例1:

使用 Range(arg)(其中arg 为区域名称)可返回一个代表单个单元格或单元格区域的 Range 对象。下例将单元格 A1 中的值赋给单元格 A5。 

Sub test()
    Worksheets("Sheet3").Range("A5").Value = _
    Worksheets("Sheet3").Range("A1").Value
End Sub

执行前:

执行后:

  • 示例2: 

下例通过为区域 A1:H8 中的每个单元格设置公式,用随机数字填充该区域。如果在不带对象识别符(句点左边的对象)的情况下使用 Range 属性,该属性会返回活动表上的一个区域。如果活动表不是工作表,则该方法失败。在使用没有显式对象识别符的 Range 属性之前,请先使用 Activate 方法激活一个工作表。 

Sub test()
    Worksheets("Sheet3").Activate
    Range("A1:H8").Formula = "=Rand()"    'Range is on the active sheet
End Sub
  • 示例3:

 使用 Cells(row,column)(其中row 是行号,column 是列标)可返回一个单元格。第二行,将单元格 A1 赋值为 24。第三行,设置单元格 A2 的公式

Sub test()
    Worksheets("Sheet3").Activate
    ActiveSheet.Cells(1, 1).Value = 24
    ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
End Sub

 结果:

  • 示例4:

使用cells属性,做递增赋值操作。行递增年份,列递增季度。并且给范围内的表格设置属性。

使用 Range(cell1, cell2)(其中cell1cell2 是指定起始和终止单元格的 Range 对象)可返回一个 Range 对象。

注意每个 Cells 属性之前的句点。如果前导的 With 语句应用于 Cells 属性,那么这些句点就是必需的。本示例中,句点指示单元格处于工作表一上。如果没有句点,Cells 属性将返回活动工作表上的单元格。

 

Sub SetUpTable()
    Worksheets("Sheet3").Activate
    For TheYear = 1 To 5
        Cells(1, TheYear + 1).Value = 1990 + TheYear
    Next TheYear
    For TheQuarter = 1 To 4
        Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter
    Next TheQuarter
    With Worksheets(6)
        .Range(.Cells(1, 1), _
            .Cells(5, 6)).Borders.LineStyle = xlThick
    End With
End Sub

结果:

 

Excel Application对象应用大全 [完美Excel]本文以MSDN中的技术文章《Developers Guide to the Excel 2007 Application Object》为线条,参考了一系列相关技术文章和图书资料,全面整理和总结了Application对象应用知识。 Application对象Excel对象模型中最高层级的对象,代表Excel应用程序自身,也包含组成工作簿的许多部分,包括工作簿、工作表、单元格集合以及它们包含的数据。 Application对象包含: • 应用程序设置和选项,许多选项与“选项”对话框中的选项相同。 • 返回顶级对象的方法,例如ActiveCell、ActiveSheet,等等。 本文使用VBA代码示例简要介绍了与Application对象相关的经常使用的对象、方法和属性,其中一些成员能够改变用户与Excel应用程序交互的方式,还能够改变应用程序的外观和式样。熟悉Application对象能够让您扩展和调整Excel的功能,以满足自已的需求。 本文主要介绍的内容如下: 从Application对象引用对象 Application对象相关的集合 • AddIns集合 • Columns集合和Rows集合 • Dialogs集合 • Sheets集合 Application对象相关的属性 • ActiveCell属性 • ActiveChart属性 • ActiveSheet属性 • ActiveWindow属性 • ActiveWorkbook属性 • RangeSelection属性 • ScreenUpdating属性 • Selection属性 • StatusBar属性 • ThisWorkbook属性 Application对象相关的方法 • FindFile方法和Dialogs集合 • GetOpenFilename方法 • GetSaveAsFilename方法 • InputBox方法 • Run方法 Application对象相关的事件 • 激活Application事件监视 使用Application对象执行其它任务 • 删除工作表而显示提示信息(DisplayAlerts属性) • 无须提示用户而保存工作表(DisplayAlerts属性) • 使用SendKeys方法发送信息到记事本 • 安排宏在指定的时间和间隔运行(OnTime方法) Application对象的其它一些属性和方法 • Caller属性 • CutCopyMode属性 • Evaluate方法 • OnKey方法 • ThisCell属性 • WorksheetFunction属性 • 改变光标显示(Cursor属性) • 获取或改变Excel窗口的状态或大小(WindowState属性) • 获取系统信息 • 自动隐藏公式栏(DisplayFormulaBar属性) • 将Excel全屏显示(DisplayFullScreen属性) • 获取Excel启动文件夹的路径(StartupPath属性) • 检测Excel的版本(Version属性) • 打开最近使用过的文档(RecentFiles属性) • 文件对话框操作(FileDialog属性) • 改变Excel工作簿的名称(Caption属性) • 调用Windows的计算器(ActivateMicrosoftApp方法) • 暂时停止宏运行(Wait方法) • 重新计算工作簿(Calculate方法) • 控制函数重新计算(Volatile方法) • 获取重叠区域(Intersect方法) • 获取路径分隔符(PathSeparator属性) • 快速移至指定位置(Goto方法) • 关闭Excel(Quit方法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值