一、对象的概念
在VBA中,工作簿,工作表,单元格,名称,批注,条件格式,图形,图表,透视表,区域等都是对象,对象代表了应用程序中的每个元素。
在VBE中利用F2弹出对象浏览器,在工程/库下拉列表中选择excel,在左边的类列表中列出了VBA所支持的所有对象。包括其方法和属性。
对象是一个实体的物件,具有一些特征,具有读取和改变这些特征的行为,而且在改变其部分特征时,会自动产生某些预定的反应,特征称为属性,改变特征行为则为方法,改变属性的时候引发的反应为事件
Sheets(“sheet1”).Active 激活当前表
ActiveSheet.Name=”我的表” 将当前活动表的名称更改
二、对象与对象集合
对象是一个应用程序中可操作的元素,对象集合则为一组具有相同性质的对象的集合,例如:工作表sheet1为一个对象,那么sheets则为集合。Worksheet---worksheets
Name---names 条件格式与条件格式集合formatCondition---formatConditions
单元格—单元格集合 cell(行,列)---cells
对象集合有count属性,而对象则没有
激活第二个窗口 Windows(“Books”).select
同时选择三个表 sheets(Array(“sheet1”,”sheet2”,”sheet3”)).select
Sheets包含了worksheets的所有工作表对象成员和所有图表chart对象成员。添加新工作表sheets.Add , , ,xlworksheet
注意:手动操作对象时候。必须先激活该对象,而在VBA可以向一个非活动对象发送指令,设置该对象处于隐藏状态
三、对象的层次,父对象与子对象
对象是有层次的,上一层称父对象,下一层为子对象
Expression.Parent 父对象使用parent属性访问
单元格的父对象Range(“A1”).Parent则为工作表对象
ActoveCell.parent.parent 或者使用Range(“A1”)获取工作簿对象
四、认识excel所有对象
Excel包含248种对象。太多了。- -,
常用的对象
Workbook 工作簿对象
Window 窗口对象
Worksheet 工作表对象
Shape 图形对象
Range 单元格对象
Name 名称对象
Chart 图形对象
CommandBarPopup 下拉菜单对象
CommandBar 工具栏按钮对象
五、对象的表示法
a) 对象的完整引用方式与简写
完整引用:在引用对象时将对象以及父对象的父对象录入,可以准备找到子对象
简写则成为相对应用,万泉受制于鼠标的活动
b) 利用名称获取对象
对图形对象默认的命名方式为’图形类型编号’,插入一个图片。则为’图片 1’
Sheet1.Shapes(“图片 1”).delete 删除该图片
c) 重定义图形对象的名称
Sheets(1).shapes(“图片 1”).Name=”新名称”
获取覆盖区域
Range(Sheets(1).Shapes(“Win XP”).BootomRightCell,Sheets(1).Shapes(“WinXP”).TopLeftCell).address(0 ,0) 注意名称的空格半角和全角
d) 利用集合索引获取对象
Shapes(2) 获取到
e) 活动对象的简化引用
活动工作表 ActiveSheet
活动单元格 ActiveCell
活动工作簿 ActiveWorkboox
活动窗口 ActiveWinodw
f) 利用with语句简化对象引用
例如:将当前选择添加黄色背景色
With Selection.Interior
.Pattern=xlSolid 填充图案
.PatternColorIndex=xlAutomatic 图案颜色
.Color =65535
.TintAndShade=0 深浅度
.PatternTintAndShade=0 对象的单色和底纹图案
g) 事件中的me对象
如果注册一个事件,则用me代表当前的对象。如果点击sheet1则为sheet1对象。点击sheet2 为激活状态则为sheet2
Me.OLEObjects.count 当前工作表的OLE对象总数
h) 单元格的各种引用
i. Range(“A1”)
ii. Cells(1,1)
iii. [A1]
iv. 引用区域 Range(”A1:D1”)
v. Range(“D3:E7”)(1.5).address 结果为$E$3 Rnge(“D3:E7”)(4.4) $E$4
Range(“D3:E7”)(1,3) 表示区域的一行三列 可为负,左偏移和右偏移
vi. 引用多个区域 Range(“A1:D3,F4,Z1:ZB2”)
vii. 引用整行整列 Range(”2:2”) 引用第二行 Range(“2:10”) 二行到十行, Range(“D:d”) D列 Range(“D:z”) D列到Z列结束
viii. Range(Range(“A1”),Range(A2)) 引用A1-A2的区域
ix. Cells(行,列) 如果一个参数 先行后列使用
i) 当前选区和活动单元格 Selection ActiveCell
利用Active 改变选区 活动与当前选区只能用于当前工作表
j) Names 利用名称引用单元格或区域
Names.Add [A1],[A2:A7] 参数1为各列的标题参数2为标题意外的数据区域
定义名称后,在名称管理器中罗列出来
CreateNames(Top.left,bottom,right,) 使用上 左,下,右的标题名称
定义区域名称 直接使用Range(名称) 访问到
k) UsedRange和CurrentRegion
Sheet.UsedRange 已用区域,使用过的单元格区域
Sheet. CurrentRegion当前区域,
l) specialCells 按条件引用区域
单元格对象. specialCells(单元格类型[,value])
单元格类型有两种:
xlCellTypeAlFormatConditions 任意单元格类型
xlCellTypeAlValidation 带有验证条件的单元格 -4172
xlCellTypeBlanks 空单元格 -4174
xlCellTypeComments 含注释的单元格 4
xlCellTypeConstants 含常量的单元格 -4144
xlCellTypeFormulas 含公式的单元格 -4123
xlcellTypeSameFormatConditions 含有相同格式的单元格 -4173
xlCellTypeSameValidation 含有相同验证条件的单元格 -4175
xlCellTypeVisible 所有可见的单元格 12
m) CurrentArray 引用数组区域
单元格是否存在数组, Range().CurrentArray 如果不是则出错
n) Resize 重置区域大小
Resize(RowSize,ColumnSize) 调整指定区域的大小, 行数 列数 如果只有一个参数,则表示将选中区域重置为一行,而列数保持不变
o) Offset 根据偏移量引用区域
Range.Offset(RowOffset,ColumnOffset) 行偏移 列偏移 都是可选 单元格对象调用
p) Union 单元格的合集
单元格合计是将多个单元格或者区域和平为一个区域 是application的对象
Application.union([A2:B2],[D3:G4]) 引用新区域
q) Intersect 单元格区域的交集
Application.Intersect([A1:A10],[2:2]) 表示第二行的交界处是A2
r) End : 引用源区域的区域尾端的单元格
按下Ctrl+方向键迅速将单元格一直一用区域的边缘,
Range.End(Direction)
参数列表
XlDown 向下 -4121
xlToleft 向左 -4159
xlToRight 向右 -4161
xlUp 向上 -4162