excel vba程序开发自学宝典第04章_第1页
excel vba程序开发自学宝典第04章_第2页
excel vba程序开发自学宝典第04章_第3页
excel vba程序开发自学宝典第04章_第4页
excel vba程序开发自学宝典第04章_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

式、调用方式、保存方式、查询方式,以及VBA程序的基本结构等内容,对这些应用有所认识后,从本章开始正式接触ExcelVBA编程。VBA中的四大基本概念,此后的一切高级应用都是这四大概念的延伸,4.1ExcelExcelExcel常用对象的,一切操作皆以对象为基础。如果没有了对象,VBA编程就失去了存在价值。ExcelExcel用户眼前。物体是能看见的,或者能感受到它的存在。Excel中的单元格、工作表、工作簿、窗口、批注、图表、艺术字、菜单等都是对象,一个框就是一个对象,Excel本身也是一个对象。事实上,Excel中也有一些比较隐蔽、难以判断的对象。例如通过<Ctrl+F3>组合键定义的名4-1对象类 对象类

代表嵌入到工作表中的图形对象,包括自选图形、OLE对象、、图表、艺术 格式的工作簿,则只有65536256个。表函数对象Worksheetfunction和字体对象Font也不存在集合,只能单个。EndEndSub即可。该序号不能小于1、不能大于对象集合的总数量。语法如下:对象集合(序号 在图4.1中展示了工作表序号的编号方式。4.13个工作表,使用Worksheets(0)Worksheets(4)都会出错。 End因此整句代码表示在信息框中显示活动工作表第3个批注的内容。本例文件参见光盘:..\第四章\4-1获取第3个批注内容 Cells代表单元格集合,可以通过序号集合中的任意一个单元格。序号是先横向后纵向计 End则代表名称为3的工作表,两者含义大相径庭。知识补充:单元格对象的写书方式比较特殊,它的对象集合是Cells,可以通过序号作参数引用单个单元格对象,例如Cells(5)CellsCells("B5")Excel提供了Range("地址")这种形式的单元格方式,从而所见即所得,可通过参数了解它所的单元格对象的地址,例如Range("A1")Range("b2:c10")Range("C:D")等。Excel别的对象即Excel应用程序本身,其对象名称为Application。在它的下层有工作簿对象(类别名称为Workbook)、窗口对象(类别名称为Window)、框对象(类别名称为活动工作表对象(此对象的写书方式是Activesheet)等。工作簿级别的名称对象(Name)、样式对象(Style)、活动工作表(此对象的写书方式是Activesheet)等。列对象(列的集合用Columns表示,可通过参数单个列)、页面设置对象(类别名称为PageSetup)、分页符对象(HpageBreak)、图形对象(Shape)、工作表及级的名称对象(类别名称为Name)等。Application对象Workbook对象Worksheet对象Rows/Columns对象Range对象Name为A的工作表名称可用代码“Worksheets(1).Names("A")”来实现。ExcelVBA为了简化方式,允许通过Application对象直接 称,因此Application.Names("A")和Application.Names("B")也能 Activesheet的下级对象,然而它们两者是不同的。ApplicationActiveSheet代表ApplicationActiveSheetWorkbookActivesheetExcel允许同Application对象的下层对象时,Range只代表活动工作表中的单元格;当作为工作表对象Worksheet的下层对象时,Range可以代表任何工作表中的单元格,因此“Worksheet对象.Range”大于“Application.Range”对象。按<Alt+F11>组合键进入VBE窗口。SubWorksheet对象Range对象的值MsgBoxWorksheets("Sheet1").Cells(1)'Sheet1A1的值MsgBoxWorksheets("Sheet2").Cells(1)'Sheet2A1的值MsgBoxWorksheets("Sheet3").Cells(1)'Sheet3A1的值EndSubApplication对象Range对象的值MsgBox End3A1单元格的值,而第二个过程只 Worksheets(1).Cells(10)—— 第1个工作表的第10个单元格。Cells(2).Comment——第2个单元格中(B1单元格)的批注。对象名称 Subtest()'Subtest()'代码存放位置:模块中Worksheets(1).Cells(10)EndVBA而言,一句完整的代码必定有一个动作,例如赋值、修改某个属性、打开或者关闭Range("A1")=123——对单元格A1赋值,此处的等号表示赋值,也算是一个动作。Excel将当前处于激活状态的对象定义为活动对象,活动对象是可以直接的,不用指定名活动窗口ActiveWindow、活动工作簿ActiveWorkbook。4.2活动工作表EndSub以使用代码“MsgBoxWorksheets(3).Name”。 再使用代码“ActiveSheet.Cells(1)=123”,而是简化为“Cells(1)=123”。工作簿只有一个。活动工作簿的书写方式是ActiveWorkbook。4.3活动单元格(C4)Activecell。例如以下过程表示向活动单元格中添加一个ActiveCell都不允许被忽略:SubSub批注End 在本书的第9章中提供大量的案例。方法都是动词,例如创建、删除、关闭、插入、激活、计算、、查找等。以下是以下是Worksheet对象的部分方法:Worksheets("Sheet2").Move——移动工作表Sheet2。Workbook对象的部分面以查询Workbook对象的方法与属性为例,介绍具体的操作步骤。在VBE界面中单击菜单中的“帮助”“VisualBasicforApplications帮助”法、属性和列表,如图4.4所示。

VBA为用户提供了对象的属性与方法列表,录入代码时会自动弹出该列表,用户可以从列表后可以调用工作表相关的一切方法与属性。在图4.5中带有绿标的是方法,带有手属性与方法列表如图4.6所示。图4.5与工作表相关的方法与属 图4.6单元格对象的方法与属多了一个文件,新文件的路径与原文件不同不代表修改了原文件的FullName属性值)。称,如果工作簿已保存,那么可将工作簿路径一并输出到A1单元格中。Name属性是可读、可写的属性,因此既可以工作表的Name属性又可以随意修改该属性值。Worksheets(1).Name="分表"'将第一个工作表重命名为“分表”Worksheets(2).Name="总表"'将第二个工作表重命名为“总表”学习PasteSpecial方法的正确方式。选择A1单元格,然后按<Ctrl+C>组合键A1的值B1单元格,单击鼠标右键,从弹出的右键菜单中选择“选择性粘贴”“数值”双击“模块1”,可在模块中看到以下代码:SubSub宏1()EndSub 而“Selection.PasteSpecial”表示将 对象选择性粘贴到当前选区中,其后面的部分属于PasteSpecial方法的参数。VBA的帮助窗口,以“Range.PasteSpecial”为关键字进行查询,从而可以得到以 Range.PasteSpecial4个参数分别对应于要粘贴的内容、粘贴时的操作方式、是否跳过空白单元格,以及是否转置4个项目。而“选择性粘贴”框中正好 4.7Re.astSpeialSubSub宏2()Selection.DeleteShift:=xlUpEndSelectionRange,表达式 4.8象的方式解决问题,将对象Selection重置为整行或者整列。4.3操作这些对象。学习VBA其实就是用对象的方法去操作对象,以及读、写对象的属性。本章对进行简要的阐述,在本书的第9章中会有大量关于的综合应用。PrivatePrivateSubEnd PrivateSubEnd图4.9工作簿过程的存放位 本章和第8章主要讲述工作簿和工作表。由于应用程序的应用比较复杂,需要件则会出现在本书的第17章中。应用程序对象、工作簿对象、工作表对象的被称作应用程序、工作簿和工作表事件,它们之间是有层级关系的,应用程序包含工作簿、工作簿包含工作表。当触发工作表时,同时也触发工作簿和应用程序,当触发工作簿时也会触发应用程,但是反过来不成立,即触发高级别时不一定触发低级别。表4-2工作簿一 名 功能说

在Excel保存或导出指定工作簿中的XML数据之后开的Excel工作簿之后,发生此 在Excel保存或导出指定工作簿中的XML数据之

XMLXML数据被导入任意一个打开的Excel工作簿之前,发生此 如果用户在OLAP数据表上深化记录集或调用行集操作

Excel中的任何超时发生此在编辑或重新计算(针对包含的单元格)数据表中 在针对OLAP数据源提交对数据表的更改前发生此 在对数据表进行更改之后发生此任意一个工作表上的选定区域发生更改时,将发生此(图表工作表上的选定区域发生改变时,不会发生任意一个工作表上的选定区域发生更改时,将发生此(图表工作表上的选定区域发生改变时,不会发生

表4-3工作表一 Worksheet 在针对OLAP数据源提交对数据表的更改前发生此 工作表的代码必须放在工作表的代码窗口中,放在其他地方例如模块中或部分过程由对象和触发条件两部分组成,例如打开工作簿的过程名称是当满足Open这个条件时,代码所在的工作簿就触发了“Workbook_Open”。其他的部分工作簿由3部分组成,包括对象、触发条件和参数,参数主要用于获取 工作表的Change的完整名称是“Worksheet_Change(ByValTargetAsRange)”,其中Chang的整体含义是改变代码所在工作表的单元格的值时触发Worksheet_Change。Change要理解删除空白单元格这个动作的原本目的是去“改变”单元格A1中的值,尽管单元格A1中的值 相关的信息。例如Worksheet_Change的参数Target代 按<Alt+F11>VBE4.10Sheet1口中包含了工作表的SelectionChange和Change的程序外壳。4.11选择“ChangeApplication.StatusBar="您当前正在修改"&Target.Address&"的值 按<Alt+F11>组合键返回工作表界面,进入Sheet1工作表中。Sheet1工作表的任意单元格的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论