ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 9646|回复: 10

[分享]VBA编程系列之对象模型(4):常用对象概述

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-7-10 14:38 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

常用对象概述
您可能知道程序设计的基本过程,了解VBA的基本数据类型,会使用程序控制语句,运用过一些程序设计的基本方法,还编写过一些程序,但如果您想自动化操作和控制Excel应用程序,则必须要与Excel的对象模型所提供的对象进行交互,因为Excel应用程序本身就是通过这些对象组织在一起的。
Excel的对象模型提供了数百个对象,当您在使用Excel时,有些对象可能会经常用到,而另外一些对象则不常用。一般来说,对Excel应用程序本身的一些设置、对工作簿和工作表的操作、单元格和单元格区域的操作、以及图表的操作等,是我们经常要涉及到的。因此,在学习Excel的对象模型时,我们可以先集中研究和探讨与这些操作相关的对象、方法、属性和事件,以及它们的使用,以此来逐步加深对Excel对象模型的认识和理解直至全面掌握。
这些对象包括:
 Application 对象
 Workbook 对象
 Worksheet 对象
 Range 对象
在您使用Excel时,大部分的工作都是以这四类对象及它们的成员为中心的。Application对象代表整个Excel应用程序,而每个Workbook对象则包含一个Worksheet对象的集合,Range对象则代表单个单元格或单元格区域。
在前面的一系列文章中,我们详细讲解了集合和对象的概念。在本文中,将简略地描述这些对象及它们的部分方法和属性,使您对它们建立一个初步的印象。后面的一系列文章将对它们进行详细的解析,帮助您应用它们。
Application对象
Excel Application对象代表Excel应用程序本身,该对象中的一些成员关系到您的应用程序行为的正确与否。下面分别予以说明。
Application对象中有一些属性控制着Excel的状态和外观。例如,我们经常在程序中看到或用到的ScreenUpdating属性,它的默认值为True,这使得Excel在调用每个方法后都会更新屏幕,极大地影响了程序的运行速度,因此,您可以在代码运行前将其设置为False,但是一定要记住在程序运行结束前将其设置为True,以恢复它的默认状态,Excel不会为您自动恢复它。此外,Cursor属性控制着鼠标指针的外观;EditDirectlyInCell属性决定您是否可以直接在工作表中编辑单元格,否则您将只能在工作表的公式栏中编辑单元格;如果您把FixedDecimal属性设置为True,则您可以利用FixedDecimalPlaces属性来确定数值数据的小数位数;设置Interactive属性可以决定您是否可以使用鼠标和键盘,若您将Interactive属性的值设置为False,则禁用鼠标和键盘,但在程序处理完后您一定要将其值重新设置为True;若要决定当您按下Enter键后单元格的移动方向,您可以将MoveAfterReturnDirection属性的值设为xlDown(向下移动)、xlToLeft(向左移动)、xlToRight(向右移动)、xlUp(向上移动)。
有一些Application对象的属性可以返回对象。例如,ActiveCell属性返回活动窗口中当前活动单元格的引用;Sheets属性返回活动工作簿中Sheet对象的集合;Workbooks属性则返回当前所有打开的工作簿的Workbook对象的集合。
Application对象也提供了许多允许您执行操作的方法。例如,Calculate方法将允许您强制重新计算所有打开的工作簿、或者是特定工作簿、或者是特定的范围。
用Application对象所提供的属性和方法,您还可以处理Excel文件。例如,DefaultFilePath属性用来获取或设置用于加载和保存Excel文件的路径;FileDialog属性返回FileDialog对象,允许您选择一个文件并将其打开、或者选择一个文件的位置并保存当前工作簿、或者选择一个文件夹、或者选择一个文件名。此外,Application对象还提供了GetOpenFileName和GetSaveAsFileName方法允许您选择一个要打开的文件的文件名。
Application对象还有一些专有的成员。例如,WorksheetFunction属性返回的对象提供了Excel工作表函数,这些函数是VBA函数中所没有的;Windows属性允许您可以打开、关闭和排列Excel对象窗口。
Application对象除了提供属性和方法外,它还拥有大量的事件。例如,当任何一个表被激活时,会产生SheetActivate事件;当任何工作表中的单元格发生变化时,SheetChange事件会发生;当工作表上的选区改变时,SheetSelectionChange事件会发生;若您停用任何工作表,则SheetDeactivate事件会发生。
同时,Application对象也提供了各种处理Window对象的行为的事件。例如,当任何窗口被激活时,WindowActivate事件都会发生;当任何窗口被停用时,WindowDeactivate事件会发生。此外,Application对象还提供了当与任何Workbook对象交互时会发生的事件,例如,NewWorkbook事件发生在创建一个新的工作簿时;当任何工作簿被停用时,WorkbookDeactivate事件会发生。
Workbook对象
Workbook对象代表了Excel中的一个工作簿,而在上面所介绍的Application对象中的许多属性也适用于特定的工作簿。
Workbook对象提供了大量的属性,其中一些是我们经常要用到的。例如,Name属性返回工作簿的名称,FullName属性返回工作簿完整的路径名称,包括工作簿文件名,而Path属性则只返回工作簿路径部分。又如,Workbook对象有一个Sheets属性,返回一个Sheet对象,该对象包含Sheet对象集合,其中每个对象可以是Worksheet对象,也可以是Chart对象。
Workbook对象也提供了大量的方法,其中您最有可能使用的方法有:Activate方法激活一个工作簿,并且选择工作簿中的第一个工作表;Close方法关闭一个指定的工作簿,可以选择是否保存对工作簿的修改;Protect方法和UnProtect方法允许您保护或取消保护工作簿;Save方法用于保存工作簿;SaveAs方法保存工作簿并允许您指定名称、文件格式、路径等;SaveCopyAs方法将工作簿的一个副本保存到文件中。
Worksheet对象
Worksheet对象代表了工作簿中的工作表,同样,它也提供了大量的成员,使我们能对工作表进行操作。它的大多数属性、方法和事件与Application对象或Workbook对象所提供的成员的相同或相似。
Range对象
Range对象代表工作表中的单元格或单元格区域。您在Excel中最常使用的就是Range对象,直接面对或操作的也是它。例如,您对Excel中的单元格或单元格区域进行操作,都需要将其设置为一个Range对象,然后使用该Range对象的方法和属性,以完成对单元格或单元格区域的操作。基本上,对Excel的大部分操作都会涉及到Range对象,可见Range对象是很重要的。
Range对象用途广泛,表达方式也灵活多样。譬如,您可以对所选择的区域进行管理,可以在代码中引用Range对象所表示的区域或单元格,您甚至可以将各种技术组合起来,完成Excel应用程序现有功能所不可能完成的工作。
常用对象的集合
正如前面的文章所说,集合是指包含一组相似的或相关的对象的对象。有了集合,我们就可以将一组相似或相关的对象当作单一的对象来引用,并且可以很方便地操作集合中的某一个对象。通常,集合的名字都是单词的复数形式。例如,Workbooks集合表示当前打开的所有Workbook对象的集合,Worksheets集合表示指定工作簿或当前工作簿中所有的Worksheet对象,Sheets集合不仅包含Workbook对象,也包含Chart对象。
同时,集合也是某一对象的属性,请您细细体味这句话。
结语
好了,这篇文章也该结尾了。您看看,即使是最常用的对象,也涉及到如此繁杂的内容,但这些是我们必须要掌握和精通的,至少作为一名ExcelVBA编程人员应该如此。
我们使用对象,是通过设置对象的属性、或者获取对象的属性、或者使用对象的方法、或者应用对象的事件,来对对象进行操作,从而操作Excel的。在接下来的文章中,我将通过示例对这些对象进行尽可能详细全面的介绍和总结归纳。

By fanjy in 2006-7-8

TA的精华主题

TA的得分主题

发表于 2006-7-10 15:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-10-3 14:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-11-24 00:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-12-24 22:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哈哈,您的好东西我可都一一收下了。

TA的精华主题

TA的得分主题

发表于 2007-3-6 09:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-3-6 16:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常版主提供了这么多的好资料!!!

TA的精华主题

TA的得分主题

发表于 2007-11-30 22:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享

TA的精华主题

TA的得分主题

发表于 2012-4-14 10:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢分享!!感谢楼主提供

TA的精华主题

TA的得分主题

发表于 2012-4-14 16:22 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 11:53 , Processed in 0.049017 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表