
ExcelVBA常用对象剖析课件.ppt
33页ExcelVBA常用对象nExcel对象模型的层次结构2Application对象pApplication对象代表整个MicrosoftExcel应用程序本身,所有打开的工作簿都是属于一个Excel应用程序,即一个Application对象p通过Application对象提供的属性和方法,可控制Excel应用程序的外观和状态使用Application对象3pApplication对象的常用属性n获取对象的引用pActiveWorkbook属性pActiveSheet属性pActiveCell属性pWorkbooks属性pSheets属性pCells属性pSelection属性pWorksheetFunction属性使用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.QuitApplication对象nActiveSheet属性p返回活动工作表。
如果没有活动的工作表,则返回NothingSub活动工作表()Debug.Print"当前活动工作表是:";Application.ActiveSheet.NameEndSubWorkbook对象和Workbooks集合nWorkbook对象:代表一个MicrosoftExcel工作簿nWorkbooks对象:MicrosoftExcel应用程序中当前打开的所有Workbook对象的集合nWorkbook.Name属性:它代表对象的名称nWorkbook.FullName属性:返回对象的名称(以字符串表示),包括其磁盘路径nWorkbook.Sheets属性:返回一个Sheets集合,它代表指定工作簿中所有工作表nWorkbooks.Add方法:新建工作簿,新建的工作簿将成为活动工作簿nWorkbooks.Open方法:打开一个工作簿nWorkbooks.Close方法:关闭对象Workbook对象和Workbooks集合Workbook对象和Workbooks集合p例1创建一个新的工作簿Workbooks.Addn由Add方法返回的Workbook对象分配给对象变量NewBook。
然后,对NewBook进行操作SetNewBook=Workbooks.AddNewBook.SaveAsFilename:="Test.xls"nSet语句语法形式:Set<变量或属性名>={[New]<对象表达式>|Nothing}pNew创建对象的一个新实例pNothing释放该对象资源Workbook对象和Workbooks集合p例2打开工作簿用Open方法:Workbooks.Open(“D:\Test.xls”)即打开D盘根目录中的Test.xls工作簿Worksheet对象和Worksheets集合pWorksheet对象:代表一个工作表pWorksheets对象:指定的或活动工作簿中所有Worksheet对象的集合p常用属性nWorksheet.Cells属性:返回一个Range对象,它代表工作表中的所有单元格(不仅仅是当前使用的单元格)nWorksheet.Columns属性:返回一个Range对象,它代表活动工作表中的所有列nWorksheet.Name属性:返回或设置一个String值,它代表对象的名称p常用方法:nWorksheets.Add方法:新建工作表。
新建的工作表将成为活动工作表nWorksheets.Copy方法:将工作表复制到工作簿的另一位置nWorksheets.Delete方法:删除对象nWorksheets(工作表).Activate方法:激活工作表Worksheet对象和Worksheets集合Workbook对象和Workbooks集合p例3激活工作表(激活工作簿中的Sheet1工作表)Worksheets("Sheet1").Activate或Worksheets(1).ActivateWorkbook对象和Workbooks集合p例4:新建工作表Sub新建工作表1()Worksheets.Addbefore:=Sheet1EndSubSub新建工作表2()Worksheets.Addafter:=Sheet4,Count:=2EndSubpCount可选要新建的工作表的数目默认值为1Workbook对象和Workbooks集合p例5:保存工作表Sub保存工作表()ActiveWorkbook.SaveAsFilename:="D:\第一个保存工作表.xlsx"EndSubWorkbook对象和Workbooks集合p例6:重命名工作表Sub重命名工作表() Sheets(1).Select Sheets(1).Name="hello"EndSubWorkbook对象和Workbooks集合p例7:复制和删除工作表Sub复制和删除工作表()Sheets(1).Name="原始表"Sheets("原始表").Copybefore:=Sheets("原始表")Sheets(1).Name="副本1"Sheets("原始表").DeleteEndSubExcelVBA怎样引用区域目录●引用一个单元格●引用一个区域●引用整行●引用整列●引用所有单元格●引用相对位置单元格●引用特殊区域(一)●引用特殊区域(二)●引用特殊区域(三)引用一个单元格p举例:引用单元格B5n[B5]p直接写地址,没有引号,无法循环nRange("B5")p地址为字符串,可行循环,但书写麻烦nCells(5, "B")p先行后列,行地址为数字,列地址为字符串,无法引用区域nCells(5,2)p地址为数字,先行后列,行列都可循环,无法引用区域引用一个区域p举例:引用区域B5:D10n[B5:D10]p地址用冒号连接nRange("B5:D10")nRange("B5", "D10")p起止地址分别用引号括起来,中间用逗号连接nRange(Range("B5"),Range( "D10"))pRange嵌套nRange(Cells(5, 2), Cells(10, 4))pRange与Cells混合引用整行p举例:引用第一行n[1:1]nRange("1:1")nRows(1)p利用Rows(行)集合p举例:引用第一到第三行n[1:3]nRange("1:3")nRows("1:3")引用整列p举例:引用A列(第一列)n[A:A]nRange("A:A")nColumns(1)p利用Columns(列)集合nColumns("A")p举例:引用A到C列(第一到第三列)n[A:C]nRange("A:C")nColumns("A:C")引用所有单元格p引用所有单元格nCellsp利用Cells(单元格)集合nRange(Cells(1, 1), _Cells(Cells.Rows.Count, Cells. Columns.Count))p从第一行第一列到最后一行最后一列p引用所有行nRowsp利用Rows(行)集合p引用所有列nColumnsp利用Columns(列)集合引用特殊区域(一)p引用多个区域n[B5:D10, A1:C9]p可以多个区域nRange("B5:D10, A1:C9,…")p逗号在引号内部nUnion(Range("B5:D10"),Range("A1:C9"))p可以有多个Range型参数p引用交叉(公共)区域nIntersect(Range("B5:D10"),Range("A1:C9"))p可以有多个Range型参数引用特殊区域(二)p引用当前区域nRange("B1").CurrentRegionp当前区域是以空行和空列围成的区域p任何一个区域都有自己所属的当前区域p引用已用区域nActiveSheet.UsedRangep不仅包括有数据的区域,还包括曾经用过的区域p以所有用过区域的中最上行最左列和最下行最右列围成p一个工作表只有一个用过区域p如果没有用过任何单元格,则已用区域为A1单元格引用特殊区域(三)p引用活动单元格nRange("B5").Activatep只能用于活动工作表p引用当前选区nActiveCell.CurrentRegionp引用偏移区域nRange("B5:D10").Offset(2,1)p引用C7:E12,偏移地址可正可负,默认为0,偏移地址先行后列引用命名区域p引用命名区域将当前工作表中名为“AA”的单元格区域内容设置为30。
[AA].Value = 30相对引用区域p相对引用n将位于活动工作表上活动单元格下1行和右3列的单元格设置为双下划线格式 ActiveCell.Offset(1, 3).Font.Underline = xlDouble单元格和区域的操作p求数据区末尾行号: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列数据区末尾行号单元格和区域的操作p求数据区末尾列号: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行数据区末尾列号实例p编程序,打印九九乘法表如下。
实例p编程序,打印九九乘法表如下。












