ExcelVBA编程入门范例[第三章工作簿(Workbook)基本操作应用示例]来源:百度点击数:4518时间:2012/1/514:17:17作者:风行摘要:ExcelVBAExcelVBA编程入门范例第三章Workbook对象(fanjy)第三章工作簿(Workbook)基本操作应用示例正文:Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下面对Workbook对象的重要的方法和属性以及其它一些可能涉及到的方法和属性进行示例介绍,同时,后面的示例也深入介绍了一些工作簿对象操作的方法和技巧。示例03-01:创建工作簿(Add方法)[示例03-01-01]SubCreateNewWorkbook1()MsgBox将创建一个新工作簿.Workbooks.AddEndSub[示例03-01-02]SubCreateNewWorkbook2()DimwbAsWorkbookDimwsAsWorksheetDimiAsLongMsgBox将创建一个新工作簿,并预设工作表格式.Setwb=Workbooks.AddSetws=wb.Sheets(1)ws.Name=产品汇总表ws.Cells(1,1)=序号ws.Cells(1,2)=产品名称ws.Cells(1,3)=产品数量Fori=2To10ws.Cells(i,1)=i-1NextiEndSub示例03-02:添加并保存新工作簿SubAddSaveAsNewWorkbook()DimWkAsWorkbookSetWk=Workbooks.AddApplication.DisplayAlerts=FalseWk.SaveAsFilename:=D:/SalesData.xlsEndSub示例说明:本示例使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xls保存在D盘中。其中,语句Application.DisplayAlerts=False表示禁止弹出警告对话框。ExcelVBAExcelVBA编程入门范例第三章Workbook对象(fanjy):打开工作簿(Open方法)[示例03-03-01]SubopenWorkbook1()Workbooks.Open需打开文件的路径\文件名EndSub示例说明:代码中的里的内容需用所需打开的文件的路径及文件名代替。Open方法共有15个参数,其中参数FileName为必需的参数,其余参数可选。[示例03-03-02]SubopenWorkbook2()DimfnameAsStringMsgBox将D盘中的测试.xls工作簿以只读方式打开fname=D:\测试.xlsWorkbooks.OpenFilename:=fname,ReadOnly:=TrueEndSub示例03-04:将文本文件导入工作簿中(OpenText方法)SubTextToWorkbook()'本示例打开某文本文件并将制表符作为分隔符对此文件进行分列处理转换成为工作表Workbooks.OpenTextFilename:=文本文件所在的路径/文本文件名,_DataType:=xlDelimited,Tab:=TrueEndSub示例说明:代码中的里的内容需用所载入的文本文件所在路径及文件名代替。OpenText方法的作用是导入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。该方法共有18个参数,其中参数FileName为必需的参数,其余参数可选。示例03-05:保存工作簿(Save方法)[示例03-05-01]SubSaveWorkbook()MsgBox保存当前工作簿.ActiveWorkbook.SaveEndSub[示例03-05-02]SubSaveAllWorkbook1()DimwbAsWorkbookMsgBox保存所有打开的工作簿后退出Excel.ForEachwbInApplication.Workbookswb.SaveNextwbApplication.QuitPDF文件使用pdfFactoryPro试用版本创建对象(fanjy)[示例03-05-03]SubSaveAllWorkbook2()DimwbAsWorkbookForEachwbInWorkbooksIfwb.PathThenwb.SaveNextwbEndSub示例说明:本示例保存原来已存在且已打开的工作簿。示例03-06:保存工作簿(SaveAs方法)[示例03-06-01]SubSaveWorkbook1()MsgBox将工作簿以指定名保存在默认文件夹中.ActiveWorkbook.SaveAs工作簿名.xlsEndSub示例说明:SaveAs方法相当于“另存为……”命令,以指定名称保存工作簿。该方法有12个参数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。[示例03-06-02]SubSaveWorkbook2()DimoldNameAsString,newNameAsStringDimfolderNameAsString,fnameAsStringoldName=ActiveWorkbook.NamenewName=new&oldNameMsgBox将&oldName&以&newName&的名称保存folderName=Application.DefaultFilePathfname=folderName&\&newNameActiveWorkbook.SaveAsfnameEndSub示例说明:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。[示例03-06-03]SubCreateBak1()MsgBox保存工作簿并建立备份工作簿ActiveWorkbook.SaveAsCreateBackup:=TrueEndSub示例说明:本示例将在当前文件夹中建立工作簿的备份。[示例03-06-04]ExcelVBAExcelVBA编程入门范例第三章Workbook对象(fanjy)()MsgBox保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False.MsgBoxActiveWorkbook.CreateBackupEndSub示例03-07:取得当前打开的工作簿数(Count属性)SubWorkbookNum()MsgBox当前已打开的工作簿数为:&Chr(10)&Workbooks.CountEndSub示例03-08:激活工作簿(Activate方法)[示例03-08-01]SubActivateWorkbook1()Workbooks(工作簿名).ActivateEndSub示例说明:Activate方法激活一个工作簿,使该工作簿为当前工作簿。[示例03-08-02]SubActivateWorkbook2()DimnAsLong,iAsLongDimbAsStringMsgBox依次激活已经打开的工作簿n=Workbooks.CountFori=1TonWorkbooks(i).Activateb=MsgBox(第&i&个工作簿被激活,还要继续吗?,vbYesNo)Ifb=vbNoThenExitSubIfi=nThenMsgBox最后一个工作簿已被激活.NextiEndSub示例03-09:保护工作簿(Protect方法)SubProtectWorkbook()MsgBox保护工作簿结构,密码为123ActiveWorkbook.ProtectPassword:=123,Structure:=TrueMsgBox保护工作簿窗口,密码为123ActiveWorkbook.ProtectPassword:=123,Windows:=TrueMsgBox保护工作簿结构和窗口,密码为123ActiveWorkbook.ProtectPassword:=123,Structure:=True,Windows:=TrueEndSub示例说明:使用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工作簿密码,要解除工作簿保护应输入此密码;参数Structure设置为True则保护工作簿结ExcelVBAExcelVBA编程入门范例第三章Workbook对象(fanjy)构,此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。示例03-10:解除工作簿保护(UnProtect方法)SubUnprotectWorkbook()MsgBox取消工作簿保护ActiveWorkbook.Unprotect123EndSub示例03-11:工作簿的一些通用属性示例SubtestGeneralWorkbookInfo()MsgBox本工作簿的名称为&ActiveWorkbook.NameMsgBox本工作簿带完整路径的名称为&ActiveWorkbook.FullNameMsgBox本工作簿对象的代码名为&ActiveWorkbook.CodeNameMsgBox本工作簿的路径为&ActiveWorkbook.PathIfActiveWorkbook.ReadOnlyThenMsgBox本工作簿已经是以只读方式打开ElseMsgBox本工作簿可读写.EndIfIfActiveWorkbook.SavedThenMsgBox本工作簿已保存.ElseMsgBox本工作簿需要保存.EndIfEndSub示例03-12:访问工作簿的内置属性(BuiltinDocumentProperties属性)[示例03-12-01]SubShowWorkbookProperties()DimSaveTimeAsStringOnErrorResumeNextSaveTime=ActiveWorkbook.BuiltinDocumentProperties(LastSaveTime).ValueIfSaveTime=ThenMsgBoxActiveWorkbook.Name&工作簿未保存.ElseMsgBox本工作簿已于&SaveTime&保存,,ActiveWorkbook.NameEndIfEndSub示例说明:在Excel中选择菜单“文件——属性”命令时将会显示一个“属性”对话框,该对话框中包含了当前工作簿的有关信息,可以在VBA中使用BuiltinDocumentProperties属性访问工作簿的属性。上述示例代码将显示当前工作簿保存时的日期和时间。ExcelVBAExcelVBA编程入门范例第三章Workbook对象(fanjy)[示例03-12-02]SublistWorkbookProperties()OnErrorResumeNext'在名为工作簿属性的工作表中添加信息,若该工作表不存在,则新建一个工作表Worksheets(工作簿属性).ActivateIfErr.Number0ThenWorksheets.Addafter:=Worksheets(W