资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Excel VBA,常用对象,1,Excel,对象模型的层次结构。,2,Application,对象,2,Application,对象代表整个,Microsoft Excel,应用程序本身,所有打开的工作簿都是属于一个,Excel,应用程序,即一个,Application,对象。,通过,Application,对象提供的属性和方法,可控制,Excel,应用程序的外观和状态。,使用,Application,对象,3,Application,对象的常用属性,获取对象的引用,ActiveWorkbook,属性,ActiveSheet,属性,ActiveCell,属性,Workbooks,属性,Sheets,属性,Cells,属性,Selection,属性,WorksheetFunction,属性,使用,Application,对象,4,使用,Application,对象,VBA,操作,立即窗口输入,获取当前应用程序名称,?Application.Name,将,Excel,应用程序标题改为“,My Application”,Application.Caption=,My Application,将,Excel,应用程序标题改回为“,Microsoft Excel”,Application.Caption=Microsoft Excel”,获取,Excel.exe,保存的文件夹路径,?Application.Path,退出,Excel Application.Quit,5,Application,对象,ActiveSheet,属性,返回活动工作表。如果没有活动的工作表,则返回,Nothing,。,Sub,活动工作表,(),Debug.Print,当前活动工作表是:,;Application.ActiveSheet.Name,End Sub,6,Workbook,对象和,Workbooks,集合,Workbook,对象,:代表一个,Microsoft Excel,工作簿,Workbooks,对象,:,Microsoft Excel,应用程序中当前打开的所有,Workbook,对象的集合,Workbook.Name,属性:它代表对象的名称,Workbook.FullName,属性:返回对象的名称(以字符串表示),包括其磁盘路径,Workbook.Sheets,属性:返回一个,Sheets,集合,它代表指定工作簿中所有工作表,7,Workbooks.Add,方法:新建工作簿,新建的工作簿将成为活动工作簿。,Workbooks.Open,方法:打开一个工作簿,Workbooks.Close,方法:关闭对象,Workbook,对象和,Workbooks,集合,8,Workbook,对象和,Workbooks,集合,例,1,创建一个新的工作簿。,Workbooks.Add,由,Add,方法返回的,Workbook,对象分配给对象变量,NewBook,。然后,对,NewBook,进行操作。,Set NewBook=Workbooks.Add,NewBook.SaveAs Filename:=Test.xls,Set,语句语法形式:,Set =New|Nothing,New,创建对象的一个新实例。,Nothing,释放该对象资源,。,9,Workbook,对象和,Workbooks,集合,例,2,打开工作簿用,Open,方法:,Workbooks.Open(,“,D:Test.xls,”,),即打开,D,盘根目录中的,Test.xls,工作簿。,10,Worksheet,对象和,Worksheets,集合,Worksheet,对象,:代表一个工作表,Worksheets,对象,:指定的或活动工作簿中所有,Worksheet,对象的集合,常用属性,Worksheet.Cells,属性:返回一个,Range,对象,它代表工作表中的所有单元格(不仅仅是当前使用的单元格)。,Worksheet.Columns,属性:返回一个,Range,对象,它代表活动工作表中的所有列,Worksheet.Name,属性:返回或设置一个,String,值,它代表对象的名,称,11,常用方法:,Worksheets.Add,方法:新建工作表。新建的工作表将成为活动工作表,Worksheets.Copy,方法:将工作表复制到工作簿的另一位置,Worksheets.Delete,方法:删除对象,Worksheets(,工作表,).Activate,方法,:激活工作表,Worksheet,对象和,Worksheets,集合,12,Workbook,对象和,Workbooks,集合,例,3,激活工作表(激活工作簿中的,Sheet1,工作表),Worksheets(Sheet1).Activate,或,Worksheets(1).Activate,13,Workbook,对象和,Workbooks,集合,例,4,:新建工作表,Sub,新建工作表,1(),Worksheets.Add before:=Sheet1,End Sub,Sub,新建工作表,2(),Worksheets.Add after:=Sheet4,Count:=2,End Sub,Count,可选。要新建的工作表的数目。默认值为,1,。,14,Workbook,对象和,Workbooks,集合,例,5,:保存工作表,Sub,保存工作表,(),ActiveWorkbook.SaveAs Filename:=D:,第一个保存工作表,.xlsx,End Sub,15,Workbook,对象和,Workbooks,集合,例,6,:重命名工作表,Sub,重命名工作表,(),Sheets(1).Select,Sheets(1).Name=hello,End Sub,16,Workbook,对象和,Workbooks,集合,例,7,:复制和删除工作表,Sub,复制和删除工作表,(),Sheets(1).Name=,原始表,Sheets(,原始表,).Copy before:=Sheets(,原始表,),Sheets(1).Name=,副本,1,Sheets(,原始表,).Delete,End Sub,17,Excel VBA,怎样引用区域,18,目录,引用一个单元格,引用一个区域,引用整行,引用整列,引用所有单元格,引用相对位置单元格,引用特殊区域(一),引用特殊区域(二),引用特殊区域(三),19,引用一个单元格,举例:引用单元格,B5,B5,直接写地址,没有引号,无法循环,Range(B5),地址为字符串,可行循环,但书写麻烦,Cells(5,B),先行后列,行地址为数字,列地址为字符串,无法引用区域,Cells(5,2),地址为数字,先行后列,行列都可循环,无法引用区域,20,引用一个区域,举例:引用区域,B5:D10,B5:D10,地址用冒号连接,Range(B5:D10),Range(B5,D10),起止地址分别用引号括起来,中间用逗号连接,Range(,Range(B5,),Range(D10),),Range,嵌套,Range(,Cells(5,2),Cells(10,4),),Range,与,Cells,混合,21,引用整行,举例:引用第一行,1:1,Range(1:1),Rows(1),利用,Rows,(行)集合,举例:引用第一到第三行,1:3,Range(1:3),Rows(1:3),22,引用整列,举例:引用,A,列(第一列,),A:A,Range(A:A),Columns(1),利用,Columns,(列)集合,Columns(A),举例:引用,A,到,C,列(第一到第三列),A:C,Range(A:C),Columns(A:C),23,引用所有单元格,引用所有单元格,Cells,利用,Cells,(单元格)集合,Range(Cells(1,1),_Cells(,Cells.Rows.Count,Cells.Columns.Count,),从第一行第一列到最后一行最后一列,引用所有行,Rows,利用,Rows,(行)集合,引用所有列,Columns,利用,Columns,(列)集合,24,引用特殊区域(一),引用多个区域,B5:D10,A1:C9,可以多个区域,Range(B5:D10,A1:C9,),逗号在引号内部,Union(,Range(B5:D10),Range(A1:C9),),可以有多个,Range,型参数,引用交叉,(,公共,),区域,Intersect(,Range(B5:D10),Range(A1:C9),),可以有多个,Range,型参数,25,引用特殊区域(二),引用当前区域,Range(B1).CurrentRegion,当前区域是以空行和空列围成的区域,任何一个区域都有自己所属的当前区域,引用已用区域,ActiveSheet.UsedRange,不仅包括有数据的区域,还包括曾经用过的区域,以所有用过区域的中最上行最左列和最下行最右列围成,一个工作表只有一个用过区域,如果没有用过任何单元格,则已用区域为,A1,单元格,26,引用特殊区域(三),引用活动单元格,Range(B5).Activate,只能用于活动工作表,引用当前选区,ActiveCell.CurrentRegion,引用偏移区域,Range(B5:D10).,Offset(2,1),引用,C7:E12,,偏移地址可正可负,默认为,0,,偏移地址先行后列,27,引用命名区域,引用命名区域,将当前工作表中名为“,AA”,的单元格区域内容设置为,30,。,AA.Value=30,28,相对引用区域,相对引用,将位于活动工作表上活动单元格下,1,行和右,3,列的单元格设置为双下划线格式。,ActiveCell.,Offset(1,3).,Font.Underline=xlDouble,29,单元格和区域的操作,求数据区末尾行号:,r=Range(A1).End(xlDown).Row,求,A1,单元格数据区末尾行号,r=Cells(1,1).End(xlDown).Row,求,A1,单元格数据区末尾行号,r=Range(A65536).End(xlUp).Row,求,A,列数据区末尾行号,r=Cells(65536,1).End(xlUp).Row,求,A,列数据区末尾行号,r=Columns(1).End(xlDown).Row,求,A,列数据区末尾行号,30,单元格和区域的操作,求数据区末尾列号:,c=Range(A1).End(xlToRight).Column,求,A1,单元格数据区末尾列号,c=Cells(1,1).End(xlToRight).Column,求,A1,单元格数据区末尾列号,c=Cells(1,256).End(xlToLeft).Column,求第,1,行数据区末尾列号,c=Rows(1).End(xlToRight).Column,求第,1,行数据区末尾列号,31,实例,编程序,打印九九乘法表如下。,32,实例,编程序,打印九九乘法表如下。,33,
展开阅读全文