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

引言

上一张介绍了窗体,主要目的是可以输入各种过滤条件。那么怎么展示呢?我们之前已经确定要使用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

结果:

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值