




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
感谢下载载ExcelExcelVBA编程的常用代码用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句Dimaasinteger'声明a为整型变量Dima'声明a为变体变量Dimaasstring'声明a为字符串变量Dimaascurrency,bascurrency,cascurrency'声明a,b,c为货币变量 (当前不支持)、Date、String(只限变长字符串)、String*length(定长字符串)、Object、Variant、用户定义类型或对象类型。强制声明变量OptionExplicit说明:该语句必在任何过程之前出现在模块中。感谢下载载声明常数onst'常数的默认状态是Private。ConstMy=456'声明Public常数。PublicConstMyString="HELP"'声明PrivateInteger常数。PrivateConstMyIntAsInteger=5'在同一行里声明多个常数。ConstMyStr="Hello",MyDoubleAsDouble=3.4567选择当前单元格所在区域在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。SubMy_Select感谢下载载Selection.CurrentRegion.Select返回当前单元格中数据删除前后空格后的值submy_trimmsgboxTrim(ActiveCell.Value)endsub单元格位移submy_offsetActiveCell.Offset(0,1).Select'当前单元格向左移动一格ActiveCell.Offset(0,-1).Select'当前单元格向右移动一格ActiveCell.Offset(1,0).Select'当前单元格向下移动一格ActiveCell.Offset(-1,0).Select'当前单元格向上移动一格endsub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往submy_offset之下加一段代码onerrorresumenext注意以下代码都不再添加sub“代码名称”和endsub请自己添加!感谢下载载给当前单元格赋值ActiveCell.Value="你好!!!"给指定单元格赋值例如:A1单元格内容设为"HELLO"Range("a1").value="hello"又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"sheets("sheet2").selectrange("a1").value="hello"或Sheets("sheet1").Range("a1").Value="hello"说明:1.sheet2被选中,然后在将“HELLO"赋到A1单元格中。2.sheet2不必被选中,即可“HELLO"赋到sheet2的A1单元格中。感谢下载载隐藏工作表'隐藏SHEET1这张工作表sheets("sheet1").Visible=False'显示SHEET1这张工作表sheets("sheet1").Visible=True打印预览有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。DimmyAsWorksheetForEachmyInWorksheetsmy.PrintPreviewmy得到当前单元格的地址msgboxActiveCell.Address感谢下载载得到当前日期及时间msgboxdate&chr(13)&time保护工作簿ActiveSheet.Protect取消保护工作簿ActiveSheet.Unprotect给活动工作表改名为"liu"ActiveSheet.Name="liu"打开一个应用程序AppActivate(Shell("C:/WINDOWS/CALC.EXE"))增加一个工作表Worksheets.Add删除活动工作表activesheet.delete打开一个工作簿文件Workbooks.OpenFileName:="C:/MyDocuments/Book2.xls"关闭活动窗口ActiveWindow.Close单元格格式选定单元格左对齐Selection.HorizontalAlignment=xlLeft选定单元格居中Selection.HorizontalAlignment=xlCenter选定单元格右对齐Selection.HorizontalAlignment=xlRight选定单元格为百分号风格Selection.Style="Percent"选定单元格字体为粗体Selection.Font.Bold=True感谢下载载感谢下载载选定单元格字体为斜体Selection.Font.Italic=True选定单元格字体为宋体20号字WithSelection.Font.Name="宋体".Size=20With语句With对象清除单元格ActiveCell.Clear'删除所有文字、批注、格式感谢下载载返回选定区域的行数MsgBoxSelection.Rows.Count返回选定区域的列数MsgBoxSelection.Columns.Count返回选定区域的地址Selection.Address忽略所有的错误ONERRORRESUMENEXT遇错跳转onerrorgotoerr_handle'中间的其他代码err_handle:'标签'跳转后的代码感谢下载载删除一个文件kill"c:/1.txt"定制自己的状态栏Application.StatusBar="现在时刻:"&Time恢复自己的状态栏Application.StatusBar=false用代码执行一个宏Application.Runmacro:="text"滚动窗口到a1的位置ActiveWindow.ScrollRow=1ActiveWindow.ScrollColumn=1定制系统日期DimMyDate,MyDayMyDate=#12/12/69#MyDay=Day(MyDate)感谢下载载返回当天的时间DimMyDate,MyYearMyDate=DateMyYear=Year(MyDate)MsgBoxMyYearinputbox<输入框>XX=InputBox("Enternumberofmonthstoadd")得到一个文件名DimkkAsStringkk=Application.GetOpenFilename("EXCEL(*.XLS),*.XLS",Title:="提示:请打开一个msgboxkk打开zoom对话框Application.Dialogs(xlDialogZoom).Show激活字体对话框Application.Dialogs(xlDialogActiveCellFont).Show感谢下载载打开另存对话框DimkkAsStringkk=Application.GetSaveAsFilename("excel(*.xls),*.xls")Workbooks.Openkk工作簿(工作簿(Workbook)基本操作应用示例(一)Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下面对Workbook对象的重要的方法和属性以及其它一些可能涉及到的方法和属性进行示例介绍,同时,后面的示例也深入介绍了一些工作簿对象操作的方法和技巧。d01]SubCreateNewWorkbook1()MsgBox"将创建一个新工作簿."感谢下载载Workbooks.Add02]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-1Nexti感谢下载载SubAddSaveAsNewWorkbook()DimWkAsWorkbookSetWk=Workbooks.AddApplication.DisplayAlerts=FalseWk.SaveAsFilename:="D:/SalesData.xls"示例说明:本示例使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xls保存在D盘中。其中,语句Application.DisplayAlerts=False表示禁止01]SubopenWorkbook1()Workbooks.Open"<需打开文件的路径>/<文件名>"示例说明:代码中的<>里的内容需用所需打开的文件的路径及文件名代替。Open方法共有15个参数,其中参数FileName为必需的参数,其余参数可选。02]SubopenWorkbook2()DimfnameAsStringMsgBox"将D盘中的<测试.xls>工作簿以只读方式打开"fname="D:/测试.xls"Workbooks.OpenFilename:=fname,ReadOnly:=True示例03-04:将文本文件导入工作簿中(OpenText方法)SubTextToWorkbook()'本示例打开某文本文件并将制表符作为分隔符对此文件进行分列处理转换成为工作表Workbooks.OpenTextFilename:="<文本文件所在的路径>/<文本文件名>",_DataType:=xlDelimited,Tab:=True示例说明:代码中的<>里的内容需用所载入的文本文件所在路径及文件名代替。OpenText方法的作用是导入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后为必需的参数,其余参数可选。感谢下载载01]SubSaveWorkbook()MsgBox"保存当前工作簿."ActiveWorkbook.Save02]SubSaveAllWorkbook1()DimwbAsWorkbookMsgBox"保存所有打开的工作簿后退出Excel."ForEachwbInApplication.Workbookswb.SaveApplication.Quit03]SubSaveAllWorkbook2()DimwbAsWorkbook感谢下载载ForEachwbInWorkbooksIfwb.Path<>""Thenwb.Save示例说明:本示例保存原来已存在且已打开的工作簿。01]SubSaveWorkbook1()MsgBox"将工作簿以指定名保存在默认文件夹中."ActiveWorkbook.SaveAs"<工作簿名>.xls"数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。02]SubSaveWorkbook2()DimoldNameAsString,newNameAsString感谢下载载DimfolderNameAsString,fnameAsStringoldName=ActiveWorkbook.NamenewName="new"&oldNameMsgBox"将<"&oldName&">以<"&newName&">的名称保存"folderName=Application.DefaultFilePathfname=folderName&"/"&newNameActiveWorkbook.SaveAsfname示例说明:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。03]SubCreateBak1()MsgBox"保存工作簿并建立备份工作簿"ActiveWorkbook.SaveAsCreateBackup:=True示例说明:本示例将在当前文件夹中建立工作簿的备份。04]SubCreateBak2()MsgBox"保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False."感谢下载载MsgBoxActiveWorkbook.CreateBackup:取得当前打开的工作簿数(Count属性)SubWorkbookNum()MsgBox"当前已打开的工作簿数为:"&Chr(10)&Workbooks.Count01]SubActivateWorkbook1()Workbooks("<工作簿名>").ActivateActivate个工作簿,使该工作簿为当前工作簿。02]SubActivateWorkbook2()DimnAsLong,iAsLongDimbAsStringMsgBox"依次激活已经打开的工作簿"n=Workbooks.CountFori=1TonWorkbooks(i).Activateb=MsgBox("第"&i&"个工作簿被激活,还要继续吗?",vbYesNo)Ifb=vbNoThenExitSubIfi=nThenMsgBox"最后一个工作簿已被激活."NextiSubProtectWorkbook()MsgBox"保护工作簿结构,密码为123"ActiveWorkbook.ProtectPassword:="123",Structure:=TrueMsgBox"保护工作簿窗口,密码为123"ActiveWorkbook.ProtectPassword:="123",Windows:=TrueMsgBox"保护工作簿结构和窗口,密码为123"ActiveWorkbook.ProtectPassword:="123",Structure:=True,Windows:=True感谢下载载用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。护(UnProtect方法)SubUnprotectWorkbook()MsgBox"取消工作簿保护"ActiveWorkbook.Unprotect"123"SubtestGeneralWorkbookInfo()MsgBox"本工作簿的名称为"&ActiveWorkbook.NameMsgBox"本工作簿带完整路径的名称为"&ActiveWorkbook.FullNameMsgBox"本工作簿对象的代码名为"&ActiveWorkbook.CodeNameMsgBox"本工作簿的路径为"&ActiveWorkbook.PathIfActiveWorkbook.ReadOnlyThenMsgBox"本工作簿已经是以只读方式打开"感谢下载载MsgBox"本工作簿可读写."IfActiveWorkbook.SavedThenMsgBox"本工作簿已保存."MsgBox"本工作簿需要保存."示例03-12:访问工作簿的内置属性(BuiltinDocumentProperties属性)01]SubShowWorkbookProperties()DimSaveTimeAsStringOnErrorResumeNextSaveTime=ActiveWorkbook.BuiltinDocumentProperties("LastSaveTime").ValueIfSaveTime=""ThenMsgBoxActiveWorkbook.Name&"工作簿未保存."感谢下载载MsgBox"本工作簿已于"&SaveTime&"保存",,ActiveWorkbook.Name示例说明:在Excel中选择菜单“文件——属性”命令时将会显示一个“属性”对话框,该对话框中包含了当前工作簿的有关信息,可以在VBA中使用BuiltinDocumentProperties属性访问工作簿的属性。上述示例代码将显示当前工作簿保存时的日期和时间。02]SublistWorkbookProperties()OnErrorResumeNext'在名为"工作簿属性"的工作表中添加信息,若该工作表不存在,则新建一个工作表Worksheets("工作簿属性").ActivateIfErr.Number<>0ThenWorksheets.Addafter:=Worksheets(Worksheets.Count)ActiveSheet.Name="工作簿属性"ActiveSheet.Clear感谢下载载OnErrorGoTo0istProperties-----------------------SubListProperties()DimiAsLongCells(1,1)="名称"Cells(1,2)="类型"Cells(1,3)="值"Range("A1:C1").Font.Bold=TrueWithActiveWorkbookFori=1To.BuiltinDocumentProperties.CountWith.BuiltinDocumentProperties(i)Cells(i+1,1)=.NameSelectCase.TypeCasemsoPropertyTypeBooleanCells(i+1,2)="Boolean"CasemsoPropertyTypeDate感谢下载载Cells(i+1,2)="Date"CasemsoPropertyTypeFloatCells(i+1,2)="Float"CasemsoPropertyTypeNumberCells(i+1,2)="Number"CasemsoPropertyTypeStringCells(i+1,2)="string"electOnErrorResumeNextCells(i+1,3)=.ValueOnErrorGoTo0NextiRange("A:C").Columns.AutoFit示例说明:本示例代码在“工作簿属性”工作表中列出了当前工作簿中的所有内置属性。感谢下载载示例03-13:测试工作簿中是否包含指定工作表(Sheets属性)SubtestSheetExists()MsgBox"测试工作簿中是否存在指定名称的工作表"DimbAsBooleanb=SheetExists("<指定的工作表名>")Ifb=TrueThenMsgBox"该工作表存在于工作簿中."MsgBox"工作簿中没有这个工作表."‘-----------------------PrivateFunctionSheetExists(sname)AsBooleanDimxAsObjectOnErrorResumeNextSetx=ActiveWorkbook.Sheets(sname)IfErr=0ThenSheetExists=True感谢下载载SheetExists=FalseEndFunction示例03-14:对未打开的工作簿进行重命名(Name方法)Subrename()Name"<工作簿路径>/<旧名称>.xls"As"<工作簿路径>/<新名称>.xls"示例说明:代码中<>中的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。示例03-15:设置数字精度(PrecisionAsDisplayed属性)SubSetPrecision()mpValueMsgBox"在当前单元格中输入1/3,并将结果算至小数点后两位"ActiveCell.Value=1/3ActiveCell.NumberFormatLocal="0.00"pValue=ActiveCell.Value*3sgBoxpValueMsgBox"然后,将数值分类设置为[数值],即单元格中显示的精度"ActiveWorkbook.PrecisionAsDisplayed=TruepValue=ActiveCell.Value*3MsgBox"此时,当前单元格中的数字乘以3等于:"&pValue&"而不是1"ActiveWorkbook.PrecisionAsDisplayed=FalsePrecisionAsDisplayed为True,则表明采用单元格中所显示的数值示例03-16:删除自定义数字格式(DeleteNumberFormat方法)SubDeleteNumberFormat()MsgBox"从当前工作簿中删除000-00-0000的数字格式"ActiveWorkbook.DeleteNumberFormat("000-00-0000")示例说明:DeleteNumberFormat方法将从指定的工作簿中删除自定义的数字格式。示例03-17:控制工作簿中图形显示(DisplatyDrawingObjects属性)SubtestDraw()感谢下载载MsgBox"隐藏当前工作簿中的所有图形"ActiveWorkbook.DisplayDrawingObjects=xlHideMsgBox"仅显示当前工作簿中所有图形的占位符"ActiveWorkbook.DisplayDrawingObjects=xlPlaceholdersMsgBox"显示当前工作簿中的所有图形"ActiveWorkbook.DisplayDrawingObjects=xlDisplayShapes示例说明:本属性作用的对象包括图表和形状。在应用本示例前,应保证工作簿中有图表或SubtestNames()MsgBox"将当前工作簿中工作表Sheet1内单元格A1命名为myName."ActiveWorkbook.Names.AddName:="myName",RefersToR1C1:="=Sheet1!R1C1"示例说明:对于Workbook对象而言,Names属性返回的集合代表工作簿中的所有名称。示例03-19:检查工作簿的自动恢复功能(EnableAutoRecover属性)SubUseAutoRecover()感谢下载载'检查是否工作簿自动恢复功能开启,如果没有则开启该功能IfActiveWorkbook.EnableAutoRecover=FalseThenActiveWorkbook.EnableAutoRecover=TrueMsgBox"刚开启自动恢复功能."MsgBox"自动恢复功能已开启."Password属性)SubUsePassword()DimwbAsWorkbookSetwb=Application.ActiveWorkbookwb.Password=InputBox("请输入密码:")wb.Close示例说明:Password属性返回或设置工作簿密码,在打开工作簿时必须输入密码。本示例代码运行后,提示设置密码,然后关闭工作簿;再次打开工作簿时,要求输入密码。感谢下载载示例03-21:返回工作簿用户状态信息(UserStatus属性)SubUsePassword()DimUsersAsVariantDimRowAsLongUsers=ActiveWorkbook.UserStatusRow=1WithWorkbooks.Add.Sheets(1).Cells(Row,1)="用户名".Cells(Row,2)="日期和时间".Cells(Row,3)="使用方式"ForRow=1ToUBound(Users,1).Cells(Row+1,1)=Users(Row,1).Cells(Row+1,2)=Users(Row,2)SelectCaseUsers(Row,3)Case1.Cells(Row+1,3).Value="个人工作簿"Case2.Cells(Row+1,3).Value="共享工作簿"感谢下载载electRange("A:C").Columns.AutoFit示例说明:示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用户名、打开的日期和时间及工作簿使用方式。示例03-22:检查工作簿是否有密码保护(HasPassword属性)SubIsPassword()IfActiveWorkbook.HasPassword=TrueThenMsgBox"本工作簿有密码保护,请在管理员处获取密码."MsgBox"本工作簿无密码保护,您可以自由编辑."示例03-23:决定列表边框是否可见(InactiveListBorderVisible属性)SubHideListBorders()感谢下载载MsgBox"隐藏当前工作簿中所有非活动列表的边框."ActiveWorkbook.InactiveListBorderVisible=False4-01]SubCloseWorkbook1()Msgbox“不保存所作的改变而关闭本工作簿”ActiveWorkbook.CloseFalse‘或ActiveWorkbook.CloseSaveChanges:=False‘或ActiveWorkbook.Saved=True4-02]SubCloseWorkbook2()Msgbox“保存所作的改变并关闭本工作簿”ActiveWorkbook.CloseTrue24-03]感谢下载载SubCloseWorkbook3()Msgbox“关闭本工作簿。如果工作簿已发生变化,则弹出是否保存更改的对话框。”ActiveWorkbook.CloseTrue[示例03-24-04]关闭并保存所有工作簿SubCloseAllWorkbooks()DimBookAsWorkbookForEachBookInWorkbooksIfBook.Name<>ThisWorkbook.NameThenBook.Closesavechanges:=TrueBookThisWorkbook.Closesavechanges:=True[示例03-24-05]关闭工作簿并将它彻底删除SubKillMe()WithThisWorkbook.Saved=True感谢下载载.ChangeFileAccessMode:=xlReadOnlyKill.FullName.CloseFalse[示例03-24-06]关闭所有工作簿,若工作簿已改变则弹出是否保存变化的对话框SubcloseAllWorkbook()MsgBox"关闭当前所打开的所有工作簿"Workbooks.Closeb工作簿(Workbook)基本操作应用示例二)<其它一些有关操作工作簿的示例>感谢下载载SubtestNewWorkbook()MsgBox"创建一个带有10个工作表的新工作簿"DimwbasWorkbookSetwb=NewWorkbook(10)‘-----------------------FunctionNewWorkbook(wsCountAsInteger)AsWorkbook'创建带有由变量wsCount提定数量工作表的工作簿,工作表数在1至255之间DimOriginalWorksheetCountAsLongSetNewWorkbook=NothingIfwsCount<1OrwsCount>255ThenExitFunctionOriginalWorksheetCount=Application.SheetsInNewWorkbookApplication.SheetsInNewWorkbook=wsCountSetNewWorkbook=Workbooks.AddApplication.SheetsInNewWorkbook=OriginalWorksheetCountEndFunction例创建一个带有10个工作表的新工作簿。感谢下载载SubtestFileExists()MsgBox"如果文件不存在则用信息框说明,否则打开该文件."IfNotFileExists("C:/文件夹/子文件夹/文件.xls")ThenMsgBox"这个工作簿不存在!"Workbooks.Open"C:/文件夹/子文件夹/文件.xls"‘-----------------------FunctionFileExists(FullFileNameAsString)AsBoolean'如果工作簿存在,则返回TrueFileExists=Len(Dir(FullFileName))>0EndFunction示例说明:本示例使用自定义函数FileExists判断工作簿是否存在,若该工作簿已存在,则打开它。代码中,“C:/文件夹/子文件夹/文件.xls”代表工作簿所在的文件夹名、子文件夹名和工01]SubtestWorkbookOpen()MsgBox"如果工作簿未打开,则打开该工作簿."IfNotWorkbookOpen("工作簿名.xls")ThenWorkbooks.Open"工作簿名.xls"-----------------------FunctionWorkbookOpen(WorkBookNameAsString)AsBoolean'如果该工作簿已打开则返回真WorkbookOpen=FalseOnErrorGoToWorkBookNotOpenIfLen(Application.Workbooks(WorkBookName).Name)>0ThenWorkbookOpen=TrueMsgBox"该工作簿已打开"ExitFunction感谢下载载感谢下载载WorkBookNotOpen:EndFunction代表所要打开的工作簿名称。02]SubtestWookbookIFOpen()DimwbAsStringDimbwbAsBooleanwb="<要判断的工作簿名称>"bwb=WorkbookIsOpen(wb)Ifbwb=TrueThenMsgBox"工作簿"&wb&"已打开."MsgBox"工作簿"&wb&"未打开."‘-----------------------PrivateFunctionWorkbookIsOpen(wbname)AsBoolean感谢下载载DimxAsWorkbookOnErrorResumeNextSetx=Workbooks(wbname)IfErr=0ThenWorkbookIsOpen=TrueWorkbookIsOpen=FalseEndFunction[示例03-28-01]用与活动工作簿相同的名字但后缀名为.bak备份工作簿SubSaveWorkbookBackup()DimawbAsWorkbook,BackupFileNameAsString,iAsInteger,OKAsBooleanIfTypeName(ActiveWorkbook)="Nothing"ThenExitSubSetawb=ActiveWorkbookIfawb.Path=""ThenApplication.Dialogs(xlDialogSaveAs).ShowBackupFileName=awb.FullNamei=0WhileInStr(i+1,BackupFileName,".")>0i=InStr(i+1,BackupFileName,".")WendIfi>0ThenBackupFileName=Left(BackupFileName,i-1)BackupFileName=BackupFileName&".bak"OK=FalseOnErrorGoToNotAbleToSaveWithawbApplication.StatusBar="正在保存工作簿...".SaveApplication.StatusBar="正在备份工作簿...".SaveCopyAsBackupFileNameOK=True感谢下载载感谢下载载NotAbleToSave:Setawb=NothingApplication.StatusBar=FalseIfNotOKThenMsgBox"备份工作簿未保存!",vbExclamation,ThisWorkbook.Name示例说明:在当前工作簿中运行本示例代码后,将以与工作簿相同的名称但后缀名为.bak备份工作簿,且该备份与当前工作簿在同一文件夹中。其中,使用了工作簿的FullName属性[示例03-28-02]保存当前工作簿的副本到其它位置备份工作簿SubSaveWorkbookBackupToFloppyD()DimawbAsWorkbook,BackupFileNameAsString,iAsInteger,OKAsBooleanIfTypeName(ActiveWorkbook)="Nothing"ThenExitSubSetawb=ActiveWorkbookIfawb.Path=""ThenApplication.Dialogs(xlDialogSaveAs).Show感谢下载载BackupFileName=awb.NameOK=FalseOnErrorGoToNotAbleToSaveIfDir("D:/"&BackupFileName)<>""ThenKill"D:/"&BackupFileNameWithawbApplication.StatusBar="正在保存工作簿...".SaveApplication.StatusBar="正在备份工作簿...".SaveCopyAs"D:/"&BackupFileNameOK=TrueNotAbleToSave:Setawb=NothingApplication.StatusBar=FalseIfNotOKThen感谢下载载MsgBox"备份工作簿未保存!",vbExclamation,ThisWorkbook.Name示例说明:本程序将把当前工作簿进行复制并以与当前工作簿相同的名称保存在D盘中。其Kill除已存在的工作簿。值01]SubtestGetValuesFromClosedWorkbook()GetValuesFromAClosedWorkbook"C:","Book1.xls","Sheet1","A1:G20"‘-----------------------SubGetValuesFromAClosedWorkbook(fPathAsString,_fNameAsString,sName,cellRangeAsString)WithActiveSheet.Range(cellRange).FormulaArray="='"&fPath&"/["&fName&"]"_&sName&"'!"&cellRange.Value=.Value感谢下载载示例说明:本示例包含一个子过程GetValuesFromAClosedWorkbook,用来从已关闭的工testGetValuesFromClosedWorkbook从C盘根目录下的Book1.xls工作簿的工作表Sheet1中的A1:G20单元格区域内获取数据,并将其复制到当前工作表相应单元格区域中。02]SubReadDataFromAllWorkbooksInFolder()DimFolderNameAsString,wbNameAsString,rAsLong,cValueAsVariantDimwbList()AsString,wbCountAsInteger,iAsIntegerFolderName="C:/文件夹名"'创建文件夹中工作簿列表wbCount=0wbName=Dir(FolderName&"/"&"*.xls")WhilewbName<>""wbCount=wbCount+1ReDimPreservewbList(1TowbCount)wbList(wbCount)=wbName感谢下载载wbName=DirWendIfwbCount=0ThenExitSub'从每个工作簿中获取数据Workbooks.AddFori=1TowbCountr=r+1cValue=GetInfoFromClosedFile(FolderName,wbList(i),"Sheet1","A1")Cells(r,1).Formula=wbList(i)Cells(r,2).Formula=cValueNexti‘-----------------------PrivateFunctionGetInfoFromClosedFile(ByValwbPathAsString,_wbNameAsString,wsNameAsString,cellRefAsString)AsVariantDimargAsStringGetInfoFromClosedFile=""感谢下载载IfRight(wbPath,1)<>"/"ThenwbPath=wbPath&"/"IfDir(wbPath&"/"&wbName)=""ThenExitFunctionarg="'"&wbPath&"["&wbName&"]"&_wsName&"'!"&Range(cellRef).Address(True,True,xlR1C1)OnErrorResumeNextGetInfoFromClosedFile=ExecuteExcel4Macro(arg)EndFunction示例说明:本示例将读取一个文件夹内所有工作簿中工作表Sheet1上单元格A1中的值到一个新工作簿中。代码中,C:/文件夹名”代表工作簿所在的文件夹名。03]SubGetDataFromClosedWorkbook()DimwbAsWorkbookApplication.ScreenUpdating=False'以只读方式打开工作簿Setwb=Workbooks.Open("C:/文件夹名/文件.xls",True,True)WithThisWorkbook.Worksheets("工作表名")'从工作簿中读取数据.Range("A10").Formula=wb.Worksheets("源工作表名").Range("A10").Formula感谢下载载.Range("A11").Formula=wb.Worksheets("源工作表名").Range("A20").Formula.Range("A12").Formula=wb.Worksheets("源工作表名").Range("A30").Formula.Range("A13").Formula=wb.Worksheets("源工作表名").Range("A40").Formulawb.CloseFalse'关闭打开的源数据工作簿且不保存任何变化Setwb=Nothing'释放内存Application.ScreenUpdating=True示例说明:在运行程序时,打开所要获取数据的工作簿,当取得数据后再关闭该工作簿。将屏幕更新属性值设置为False,将看不出源数据工作簿是否被打开过。本程序代码中,“C:/文xls代表工作簿所在的文件夹和工作簿文件名VBA语句集感谢下载载前面已经推出了两辑VBA语句集,共有200句VBA常用代码及代码功能的简要解释。根据编程时参考。其实,您可以在VBE编辑器中将这些语句进行测试,以体验其作用或效果。尽可能收录所有在程序中所要用到的代码。(201)SetobjExcel=CreateObject("Excel.Application")objExcel.Workbooks.Add‘创建Excel工作簿(202)Application.ActivateMicrosoftAppxlMicrosoftWord'开启Word应用程序(203)Application.TemplatesPath‘获取工作簿模板的位置(204)Application.Calculation=xlCalculationManual‘设置工作簿手动计算Application.Calculation=xlCalculationAutomatic‘工作簿自动计算(205)Worksheets(1).EnableCalculation=False‘不对第一张工作表自动进行重算(206)Application.CalculateFull'重新计算所有打开的工作簿中的数据(207)Application.RecentFiles.Maximum=5'将最近使用的文档列表数设为5(208)Application.RecentFiles(4).Open'打开最近打开的文档中的第4个文档(209)Application.OnTimeDateSerial(2006,6,6)+TimeValue(“16:16:16”),“BaoPo”‘在始运行BaoPo过程感谢下载载(210)Application.Speech.Speak("Hello"&Application.UserName)‘播放声音,并使用用户的姓名问候用户(211)MsgBoxApplication.PathSeparator'获取"/"号(212)MsgBoxApplication.International(xlCountrySetting)'返回应用程序当前所在国家的设置信息(213)Application.AutoCorrect.AddReplacement"葛洲坝","三峡"'自动将在工作表中进行输入的"葛洲坝"更正为"三峡"(214)Beep'让计算机发出声音(215)Err.Number‘返回错误代码(216)MsgBoxIMEStatus'获取输入法状态(217)Date=#6/6/2006#Time=#6:16:16AM#'将系统时间更改为2006年6月6日上午6时16分16秒(218)Application.RollZoom=NotApplication.RollZoom'切换是否能利用鼠标中间的滑轮放大/缩小工作表(219)Application.ShowWindowsInTaskba=True‘显示任务栏中的窗口,即各工作簿占用各自的窗口(220)Application.DisplayScrollBars=True‘显示窗口上的滚动条(221)Application.DisplayFormulaBar=NotApplication.DisplayFormulaBar'切换是否感谢下载载显示编辑栏(222)Application.Dialogs(xlDialogPrint).Show‘显示打印内容对话框(223)Application.MoveAfterReturnDirection=xlToRight'设置按Enter键后单元格的移动方向向右(224)Application.FindFile'显示打开对话框(225)ThisWorkbook.FollowHyperlink‘打开超链接文档(226)ActiveWorkbook.ChangeFileAccessMode:=xlReadOnly'将当前工作簿设置为只读(227)ActiveWorkbook.AddToFavorites'将当前工作簿添加到收藏夹文件夹中(228)ActiveSheet.CheckSpelling'在当前工作表中执行"拼写检查"(229)ActiveSheet.Protectuserinterfaceonly:=True‘保护当前工作表(230)ActiveSheet.PageSetup.LeftHeader=ThisWorkbook.FullName‘在当前工作表的左侧页眉处打印出工作簿的完整路径和文件名(231)Worksheets("Sheet1").Range("A1:G37").Locked=FalseWorksheets("Sheet1").Protect'解除对工作表Sheet1中A1:G37区域单元格的锁定'以便当该工作表受保护时也可对这些单元格进行修改(232)Worksheets("Sheet1").PrintPreview'显示工作表sheet1的打印预览窗口(233)ActiveSheet.PrintPreviewEnablechanges:=False‘禁用显示在Excel的“打印预览”窗感谢下载载口中的设置”和页边距”按钮(234)ActiveSheet.PageSetup.PrintGridlines=True'在打印预览中显示网格线ActiveSheet.PageSetup.PrintHeadings=True'在打印预览中显示行列编号(235)ActiveSheet.ShowDataForm'开启数据记录单(236)Worksheets("Sheet1").Columns("A").Replace_What:="SIN",Replacement:="COS",_SearchOrder:=xlByColumns,MatchCase:=True'将工作表sheet1中A列的SIN替换为(237)Rows(2).Delete'删除当前工作表中的第2行Columns(2).Delete'删除当前工作表中的第2列(238)ActiveWindow.SelectedSheets.VPageBreaks.Addbefore:=ActiveCell'在当前单元格左侧插入一条垂直分页符ActiveWindow.SelectedSheets.HPageBreaks.Addbefore:=ActiveCell'在当前单元格上方插入一条垂直分页符(239)ActiveWindow.ScrollRow=14'将当前工作表窗口滚动到第14行ActiveWindow.ScrollColumn=13'将当前工作表窗口滚动到第13列(240)ActiveWindow.Close'关闭当前窗口(241)ActiveWindow.Panes.Count'获取当前窗口中的窗格数感谢下载载(242)Worksheets("sheet1").Range("A1:D2").CreateNamesTop:=True'将A2至D2的单元格名称设定为A1到D1单元格的内容(243)Application.AddCustomListlistarray:=Range("A1:A8")'自定义当前工作表中单元格A1至A8中的内容为自动填充序列(244)Worksheets("sheet1").Range("A1:B2").CopyPicturexlScreen,xlBitmap'将单元格A1至B2的内容复制成屏幕快照(245)Selection.Hyperlinks.Delete‘删除所选区域的所有链接Columns(1).Hyperlinks.Delete‘删除第1列中所有的链接Rows(1).Hyperlinks.Delete‘删除第1行中所有的链接Range("A1:Z30").Hyperlinks.Delete‘删除指定范围所有的链接(246)ActiveCell.Hyperlinks.AddAnchor:=ActiveCell,_Address:="C:/Windows/System32/Calc.exe",ScreenTip:="按下我,就会开启Windows计算器",TextToDisplay:="Windows计算器"'在活动单元格中设置开启Windows计算器链接(247)ActiveCell.Value=Shell("C:/Windows/System32/Calc.exe",vbNormalFocus)'开启Windows计算器(248)ActiveSheet.Rows(1).AutoFilter‘打开自动筛选。若再运行一次,则关闭自动筛选(249)Selection.Autofilter‘开启/关闭所选区域的自动筛选感谢下载载(250)ActiveSheet.ShowAllData关闭自动筛选(251)ActiveSheet.AutoFilterMode检查自动筛选是否开启,若开启则该语句返回True(252)ActiveSheet.Columns("A").ColumnDifferences(Comparison:=ActiveSheet._Range("A2")).Delete'在A列中找出与单元格A2内容不同的单元格并删除(253)ActiveSheet.Range("A6").ClearNotes'删除单元格A6中的批注,包括声音批注和文字批注(254)ActiveSheet.Range("B8").ClearComments'删除单元格B8中的批注文字(255)ActiveSheet.Range("A1:D10").ClearFormats'清除单元格区域A1至D10中的格式(256)ActiveSheet.Range("B2:D2").BorderAroundColorIndex:=5,_Weight:=xlMedium,LineStyle:=xlDouble'将单元格B2至D2区域设置为蓝色双线(257)Range("A1:B2").Item(2,3)或Range("A1:B2")(2,3)引用单元格C2的数据Range("A1:B2")(3)引用单元格A2(258)ActiveSheet.Cells(1,1).Font.Bold=TRUE设置字体加粗ActiveSheet.Cells(1,1).Font.Size=24设置字体大小为24磅ActiveSheet.Cells(1,1).Font.ColorIndex=3设置字体颜色为红色ActiveSheet.Cells(1,1).Font.Italic=TRUE设置字体为斜体ActiveSheet.Cells(1,1).Font.Name="TimesNewRoman"设置字体类型ActiveSheet.Cells(1,1).Interior.ColorIndex=3将单元格的背景色设置为红色感谢下载载(259)ActiveSheet.Range("C2:E6").AutoFormatFormat:=xlRangeAutoFormatColor3'将当前工作表中单元格区域C2至E6格式自动调整为彩色3格式(260)Cells.SpecialCells(xlCellTypeLastCell)‘选中当前工作表中的最后一个单元格(261)ActiveCell.CurrentArray.Select'选定包含活动单元格的整个数组单元格区域.假定该单元格在数据单元格区域中(262)ActiveCell.NumberFormatLocal="0.000;[红色]0.000"'将当前单元格数字格式设置为带3位小数,若为负数则显示为红色(263)IsEmpty(ActiveCell.Value)'判断活动单元格中是否有值(264)ActiveCell.Value=LTrim(ActiveCell.Value)'删除字符串前面的空白字符(265)Len(ActiveCell.Value)'获取活动单元格中字符串的个数(266)ActiveCell.Value=UCase(ActiveCell.Value)'将当前单元格中的字符转换成大写(267)ActiveCell.Value=StrConv(ActiveCell.Value,vbLowerCase)'将活动单元格中的字符串转换成小写(268)ActiveSheet.Range("C1").AddComment'在当前工作表的单元格C1中添加批注(269)Weekday(Date)'获取今天的星期,以数值表示,1-7分别对应星期日至星期六(270)ActiveSheet.Range("A1").AutoFillRange(Cells(1,1),Cells(10,1))'将单元格A1的数值填充到单元格A1至A10区域中(271)DatePart("y",Date)'获取今天在全年中的天数感谢下载载(272)ActiveCell.Value=DateAdd("yyyy",2,Date)'获取两年后的今天的日期(273)MsgBoxWeekdayName(Weekday(Date))'获取今天的星期数(274)ActiveCell.Value=Year(Date)'在当前单元格中输入今年的年份数ActiveCell.Value=Month(Date)'在当前单元格中输入今天所在的月份数ActiveCell.Value=Day(Date
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监理管理课件口诀图片
- 聊城辅警考试题库2025(有答案)
- 静脉穿刺技术风险防范措施
- 肝炎后期护理查房
- 高风险药物使用的安全管理
- 导尿手术安全性护理最佳实践
- 事故后创伤愈合的综合护理查房
- 海安初三一模数学试卷
- 2025北京培黎职业学院辅导员考试试题及答案
- 危险驾驶罪课件
- 灯店的合作协议合同范本
- 党建及党的知识测试题(含答案)要点
- 2025年秋数学(新)人教版三年级上课件:第1课时 曹冲称象的故事
- 勘测设计安全管理办法
- 电工复审培训课件
- 七一党课:传承红色基因勇担时代使命2025年建党104周年“七一”专题党课
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 公司安全事故隐患内部举报、报告奖励制度
- 石油集团公司井喷事故案例汇编C
- 招标工作的合理化建议
- 水泥厂生料均化库滑模施工组织设计及方案文本
评论
0/150
提交评论