对象及事件
- 对象:代码和数据的结合;如何用代码表示对象?VBA用名词来表示对象,用动词来表示对象的方法;每个对象模型都包含两种对象模型:集合对象与个体对象,如Workbooks,workbook.
- 常用对象的写法:部分支持复数形式;
- 应用程序对象:Application;
- 工作簿对象:Workbook;
- 工作表对象:Worksheet;
- 单元格对象:Range;
- 图形对象:Shape;
- 图表对象:Chart;
- 自动调用属性和方法:名称后加一个小圆点;
ActiveSheets.Range("A1").Activate
ActiveCell.Value=34
- 对象除了属性和方法以外,还有事件;
- 事件的价值在于让代码按预定的条件自动执行;事件所关连的过程将在事件发生时自动执行,所以事件也称为自动化过程,它不需要人工调用,而且事件发生时,代码也随之执行,可见对象的事件赋予了对象更灵活的特征。
- 可以想像一下事件对于编程的重要性,以住需要单击菜单,键入快捷键来执行过程,而配合事件时可自动化执行,只要满足条件即可执行相应的代码;
- 事件的本质是对象在某些内部操作时允许开发者执行自定义操作;
-
Excel事件包括:
- 应用程序事件;
- 工作簿事件;
- 工作表事件;
- 窗体事件;
- 窗体中的控件事件;
- 每个事件都依附在事件的全体对象之上;
- 事件过程的名称包含有两项内容:对象和动作;在代码窗口的上方有两个下拉列表,以下两项组合成事件的名称:
- “通用”:对象窗口;
- “声明”:过程窗口:事件的动作;
- 多数事件过程都有参数,这些参数通常与触发事件的条件相关;
- 事件过程的参数是不能修改的,事件过程的名称则允许修改;
- 设置事件是否自动执行:Application.EnableEvents=False
- 按时执行代码:Application.Onkey;
Application.OnTime(EarliestTime,Procedure,LatestTime
- Excel提供了对象浏览器(视图→对象浏览器)(F2)(所有库中选择Excel,在类列表中出现Excel的子对象,而右边窗口则是该子对象的属性和方法)用于查看所有对象,包括Excel对象及其子对象、VBA对象,窗体对象;
- 当对象是一个容器时,它会包含若干子对象,使用序号参数引用集合中的子对象;VBA的对象具有层次性;
Application.Workbooks("module").Worksheets("model").range("A1")
- Workbooks("财务表.xls"):表示保存过的工作簿(工作簿默认保存在c:\路径之下)
- 一个活动工作簿,每一个打开的工作簿对应一个活动工作表;
- 数据类型:表明了数据以何种方式储存于内存中,使用数据类型的目的是为了避免空间浪费,同时提高代码的执行效率。数据类型就是数据的容器,每个窗口都有自己的适应范围,并且对不同的容器采用不同的命名方式。
工作表操作
- 隐藏和显示工作表
- 隐藏工作表:Worksheet.Visible=xlSheetHidden;(可用右键)
- 深度隐藏工作表:Worksheet.Visible=xlSheetVeryHidden;(需要用VBA代码才可以显示)
- 显示所有隐藏的工作表:Worksheet.Visible=xlSheetVisible;
- 添加工作表:Worksheets.Add(Before,After,Count,Type)
select,selection
Activate,activecell
activecell.CurrentRegion.Select
工作簿操作
Workbooks.Open Filename:="", Password:=""
判断一个工作簿是否打开
For x = 1 To Workbooks.Count
If Workbooks(x).Name = "" Then
etc
End If
Next x
判断一个工作簿的存在
For x = 1 To sheets.Count
If Workbooks(x).Name = "" Then
etc
End If
Next x
find()方法:
使用Range对象的Find方法可以实现批量查找符合条件的单元格;
按行或按列查询,区别在于你找到的第一个符合条件的值会有区别;
replace()方法: