版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、nVBA通过对象来操作和控制Excel n查看完整的Excel对象模型:1.在 VBE 的工具栏单击 按钮2.在帮助窗口的工具栏单击 按钮3.在目录窗格的“Excel 2010 开发人员”下选择“Excel 对象模型参考”主题 n在对象模型列表中,以复数形式陈列的表示的是一个集合。集合是指一组相似的对象,例如Workbooks 是一个集合,而Worksheets是另一个集合n例:Application.Workbooks(”Book1”).Worksheets(”Sheet1”).Range(”A1”)其中,Book1是集合Workbooks的一个元素,Sheet1是集合Worksheets的
2、一个元素,A1是集合Range的一个元素nExcel应用程序 (Application)n工作薄 (Workbook)n工作表 (Worksheet)n区域 (Range)nExcel函数容器 (WorksheetFunction)n定义对象变量nDim xlsApp As Excel.ApplicationnDim xlsWB As Excel.WorkbooknDim xlsWS As Excel.WorksheetnDim xlsRG As Excel.Rangen为对象变量赋值nSet xlsWB = Workbooks(eg1.xlsx)nSet xlsWS = Workbooks(
3、1).Worksheets(Sheet1)nSet xlsRG = Workbooks(eg1). Sheets(1).Range(A1:D5)nThisWorkbookn当前宏代码运行的工作簿nActiveWorkbookn活动窗口的工作簿nActiveSheetn活动工作簿中的活动工作表nActiveCelln活动窗口的活动单元格nRange对象本身就表示一个集合,可代表某一单元格、某一行、某一列、某一选定区域n可用Range(arg)来返回代表单个单元格或单元格区域的Range对象,其中arg为区域名称。例如:Dim vRng As RangeSet vRng = ThisWorkboo
4、k.ActiveSheet.Range(A1:A5)nValuen表示单元格的内容,不仅可表示单个单元格的值,也可将整个区域作为一个数组返回或者设置n例1:ActiveCell.Value = 5n例2:vData = ActiveSheet.Range(A5:E6).ValueActiveSheet.Range(A8:E9).Value = vDatanCellsn表示单元格区域中的所有单元格n可用Cells(row, column)表示单元格区域中的某个单元格,其中row为行号,column为列标n例如,下面代码将当前工作表B2:D4区域的第2行第2列的单元格(即C3)的值设为5:This
5、Workbook.ActiveSheet.Range(B2:D4).Cells(2, 2).Value = 5nOffsetn表示相对于指定区域偏移若干行和列以后的区域,使用方法:Offset(row, column),其中 row 和 column 分别为行偏移量和列偏移量n例:ActiveCell.Offset(3, 3).Value = 5n试用VBA的方法,先在eg1.xlsx的活动工作表的A1和B1单元格分别填上“随机数”和“是否奇数”,然后在A2:A6区域随机产生5个两位整数,最后在B2:B6用True和False填上是否奇数的判断结果nCurrentRegionn表示当前区域,当
6、前区域是以空行与空列的组合为边界的非空区域n例如,下面代码选定工作表 Sheet1 上的当前区域:Worksheets(Sheet1).ActivateActiveCell.CurrentRegion.SelectnColumnsn表示指定单元格区域中的所有列n可用Columns(index)表示单元格区域中的某列n例如,下面代码将B2:D4区域第一列中每一单元格的值置为0:ThisWorkbook.ActiveSheet.Range(B2:D4).Columns(1).Value = 0nColumnWidthn表示指定区域中所有列的列宽,例:With Worksheets(Sheet1).
7、Range(B3.A12) .ColumnWidth = .ColumnWidth * 2End WithnColumnn返回指定区域第一个子区域的第一列的列号n例如,下面代码返回myRange区域最后一列的列号:myRange.Columns(myRange.Columns.Count).ColumnnRowsn表示指定单元格区域中的所有行n可用Rows(index)表示单元格区域中的某行n例如,下面代码将B2:D4区域的第3行删除:ThisWorkbook.ActiveSheet.Range(B2:D4).Rows(3).DeletenRowHeightn表示指定区域中所有行的行高,例:
8、ActiveSheet.Range(B3.A12).RowHeight = 10nRown返回区域中第一个子区域的第一行的行号n例如,下面代码将工作表 sheet1 中每隔一行的行高设置为 4 磅: For Each rw In Worksheets(Sheet1).Rows If rw.Row Mod 2 = 0 Then rw.RowHeight = 4 End If Next rwnCountn表示指定单元格区域的单元格个数n注意:Cells、Columns 和 Rows 集合对象亦有 Count 属性n试用VBA的方法,统计eg2.xlsx的Sheet1中薪资超过3000的员工人数,并
9、用消息框显示nFont:表示指定区域的字体格式,其本身也是一个对象,有如下常用的属性:Name:字体名称FontStyle:字形Size:字号Strikethrough:删除线Superscript:上标Subscript:下标OutlineFont:空心字Shadow:阴影Underline:下划线ColorIndex:颜色编号ColorIndex颜色常量颜色常量描述描述1vbBlack黑色2vbWhite白色3vbRed红色4vbGreen绿色5vbBlue蓝色6vbYellow黄色7vbMagenta洋红8vbCyan青色n试用VBA的方法,将eg3.xlsx的Sheet1中薪资最高的员
10、工的所在行记录设置为字体加粗、红色nInteriorn表示指定区域的内部格式,其本身也是一个对象,常用的属性是 ColorIndex 和 Pattern,其中ColorIndex的取值范围如Font对象的 ColorIndex值,Pattern表示填充图案n试用VBA的方法,将eg4.xlsx的Sheet1中女员工的记录设置成黄色填充 Dim vRng As Range, vRow As Range Set vRng = ActiveSheet.Range(A1).CurrentRegion For Each vRow In vRng.Rows If vRow.Cells(ColumnInde
11、x:=3).Value = 女 Then vRow.Interior.ColorIndex = 6 End If Next vRown命名参数n在调用 Sub 或 Function 过程时,可不必拘泥于语法所规定的特定顺序来提供值,而按自定义顺序用命名参数来分配值。例如,假设一Sub过程设定了三个参数:Sub DoSomeThing (namedarg1, namedarg2, namedarg3)则在调用它时,可使用以下语句:DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20n命名参数在调用具有可选的参数过程时显得特别有用。
12、如果使用命名参数,则不必利用逗号去区分出失去位置的参数n例如:MsgBox Hi,VBA., , 命名参数示例等价于MsgBox Hi,VBA., Title:=命名参数示例nAddressn返回区域的引用地址,默认时返回的是绝对引用,例如:Set mc = Worksheets(Sheet1).Cells(1, 1)MsgBox mc.Address 上面语句执行后,消息框中显示“$A$1”nFormulan区域中的公式Worksheets(Sheet1).Range(A1).Formula = =$A$4+$A$10 Worksheets(Sheet1”).Range(A1:E4). Fo
13、rmula = =RAND()n利用Range对象的Formula属性实现实例1奇数判断的功能nEndn表示包含源区域的区域尾端的单元格,语法为:End(Direction),其中Direction有4个取值:xlDown、xlToRight、xlToLeft、xlUp n例如,下面代码将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格Worksheets(Sheet1).ActivateRange(B4, Range(B4).End(xlToRight).Selectn利用Range对象的End属性实现实例2的功能?nMergeCellsn表示单元格或区域是否被包含在一个合并区域
14、中,如果是,则该值为 TruenMergeArean表示某单元格所在的合并区域。如果该单元格不在合并区域内,则该属性返回该单元格本身n例如,下面代码表示为包含单元格 A3 的合并区域赋值Set ma = Range(a3).MergeAreaIf ma.Address = $A$3 Then MsgBox not mergedElse ma.Cells(1, 1).Value = 42End Ifn注意:Cells、Columns 及 Rows 本身也是一个 Range 型的集合对象,因此,它们也具有Value、Count、Font、Interior等属性Range对象的常用方法nActiva
15、ten激活单个或多个单元格Worksheets(sheet1).Range(A1).ActivatenSelectn选中区域Worksheets(sheet1).Range(A1:B5).SelectnAutoFitn将区域中的列宽和行高调整为最适当的值Worksheets(1).Range(A1:E1).Columns.AutoFitRange对象的常用方法nCopyn复制nCutn剪切nPasteSpecialn粘贴,允许设置粘贴值还是格式(详见系统帮助)n例如,下面代码表示用 Sheet1 上单元格区域 C1:C5 和单元格区域 D1:D5 原有内容的和来取代单元格区域 D1:D5 中的
16、数据With Worksheets(Sheet1) .Range(C1:C5).Copy .Range(D1:D5).PasteSpecial _ Operation:=xlPasteSpecialOperationAddEnd WithRange对象的常用方法nInsertn插入一个单元格或区域,其他单元格作相应移位以腾出空间ActiveSheet.Range(A1:D1).InsertnDeleten删除ActiveSheet.Range(A1:D1).DeletenClearn清除Range内的内容,包括注释和格式Worksheets(Sheet2).Range(A3.D12).ClearnClearContentsn清除Range内的内容,不清除格式和注释Worksheets(Sheet2).Range(A3.D12).ClearContentsnClearFormatsn清除Range内的格式Worksheets(She
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024废钢运输合同协议书范本模板
- 2024水泥原材料质量控制采购协议3篇
- 农业种植业种子销售合同
- 2025年度学校校办工厂环保达标改造与承包经营合作协议3篇
- 2025版线上线下融合电商股东权益共享协议书3篇
- 二零二五年度国际石油天然气开采与销售合同3篇
- 环保科技项目研发和运营合作协议
- 游戏管理网站课程设计
- 机械行业精密机械零件检测与维修方案
- 2024年研发资金临时借款合同
- 2023浙江省杭州市中考语文真题试卷和答案
- 2024年甘肃兰州生物制品研究所有限责任公司招聘笔试参考题库附带答案详解
- spa浴按摩是怎么样的
- 保单检视报告活动策划
- 《学前教育研究方法》课件
- 室外消火栓安装工程检验批质量验收记录表
- AI在药物研发中的应用
- 建立信息共享和预警机制
- 2023年湖北省鄂州市鄂城区数学七年级第一学期期末综合测试试题含解析
- 美容外外科管理制度
- 苯-甲苯分离精馏塔化工原理课程设计
评论
0/150
提交评论