1 / 29
文档名称:

ExcelVBA编程的常用代码.pdf

格式:pdf   大小:1,179KB   页数:29页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ExcelVBA编程的常用代码.pdf

上传人:秋江孤影 2023/6/21 文件大小:1.15 MB

下载得到文件列表

ExcelVBA编程的常用代码.pdf

相关文档

文档介绍

文档介绍:该【ExcelVBA编程的常用代码 】是由【秋江孤影】上传分享,文档一共【29】页,该文档可以免费在线阅读,需要了解更多关于【ExcelVBA编程的常用代码 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..ExcelVBA编程的常用代码用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句Dimaasinteger'声明a为整型变量Dima'声明a为变体变量Dimaasstring'声明a为字符串变量Dimaascurrency,bascurrency,cascurrency'声明a,b,c为货币变量......声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String*length(定长字符串)、Object、Variant、用户定义类型或对象类型。强制声明变量OptionExplicit说明:该语句必在任何过程之前出现在模块中。声明常数用来代替文字值。:..Const'常数的默认状态是Private。ConstMy=456'声明Public常数。onstMyString="HELP"'声明PrivateInteger常数。PrivateConstMyIntAsInteger=5'在同一行里声明多个常数。ConstMyStr="Hello",MyDoubleAsDouble=,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。返回当前单元格中数据删除前后空格后的值submy_trimmsgboxTrim()(0,1).Select'(0,-1).Select'当前单元格向右移动一格:..(1,0).Select'(-1,0).Select'当前单元格向上移动一格endsub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往submy_offset之下加一段代码onerrorresumenext注意以下代码都不再添加sub“代码名称”和endsub请自己添加!="你好!!!"给指定单元格赋值例如:A1单元格内容设为"HELLO"Range("a1").value="hello"又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"("sheet2").selectrange("a1").value="hello"("sheet1").Range("a1").Value="hello"说明:,然后在将“HELLO"赋到A1单元格中。:..,即可“HELLO"赋到sheet2的A1单元格中。隐藏工作表'隐藏SHEET1这张工作表sheets("sheet1").Visible=False'显示SHEET1这张工作表sheets("sheet1").Visible=True打印预览有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。&chr(13)&:.."liu"="liu"打开一个应用程序AppActivate(Shell("C:/WINDOWS/")):="C:/MyDocuments/"===xlRight选定单元格为百分号风格:..="Percent"="宋体".Size='删除所有文字、批注、:..忽略所有的错误ONERRORRESUMENEXT遇错跳转otoerr_handle'中间的其他代码err_handle:'标签'跳转后的代码删除一个文件kill"c:/"="现在时刻:"&=:="text"==1定制系统日期DimMyDate,MyDay:..MyDate=#12/12/69#MyDay=Day(MyDate)返回当天的时间DimMyDate,MyYearMyDate=DateMyYear=Year(MyDate)MsgBoxMyYearinputbox<输入框>XX=InputBox("Enternumberofmonthstoadd")得到一个文件名DimkkAsStringkk=("EXCEL(*.XLS),*.XLS",Title:="提示:请打开一个EXCEL文件:")(xlDialogZoom).(xlDialogActiveCellFont).Show打开另存对话框DimkkAsStringkk=("excel(*.xls),*.xls"):..(Workbook)基本操作应用示例(一)Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下面对Workbook对象的重要的方法和属性以及其它一些可能涉及到的方法和属性进行示例介绍,同时,后面的示例也深入介绍了一些工作簿对象操作的方法和技巧。示例03-01:创建工作簿(Add方法)[示例03-01-01]SubCreateNewWorkbook1()MsgBox"将创建一个新工作簿."[示例03-01-02]SubCreateNewWorkbook2()DimwbAsWorkbookDimwsAsWorksheetDimiAsLongMsgBox"将创建一个新工作簿,并预设工作表格式."Setwb==(1)="产品汇总表"(1,1)="序号"(1,2)="产品名称"(1,3)="产品数量"Fori=(i,1)=i-1NextiEndSub示例03-02:添加并保存新工作簿SubAddSaveAsNewWorkbook()DimWkAsWorkbookSetWk==:="D:/"EndSub:..示例说明:本示例使用了Add方法和SaveAs方法,。其中,=False表示禁止弹出警告对话框。示例03-03:打开工作簿(Open方法)[示例03-03-01]SubopenWorkbook1()"<需打开文件的路径>/<文件名>"EndSub示例说明:代码中的<>里的内容需用所需打开的文件的路径及文件名代替。Open方法共有15个参数,其中参数FileName为必需的参数,其余参数可选。[示例03-03-02]SubopenWorkbook2()DimfnameAsStringMsgBox"将D盘中的<>工作簿以只读方式打开"fname="D:/":=fname,ReadOnly:=TrueEndSub示例03-04:将文本文件导入工作簿中(OpenText方法)SubTextToWorkbook()':="<文本文件所在的路径>/<文本文件名>",_DataType:=xlDelimited,Tab:=TrueEndSub示例说明:代码中的<>里的内容需用所载入的文本文件所在路径及文件名代替。OpenText方法的作用是导入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。该方法共有18个参数,其中参数FileName为必需的参数,其余参数可选。示例03-05:保存工作簿(Save方法)[示例03-05-01]SubSaveWorkbook()MsgBox"保存当前工作簿."[示例03-05-02]SubSaveAllWorkbook1()DimwbAsWorkbook:..MsgBox"保存所有打开的工作簿后退出Excel."[示例03-05-03]SubSaveAllWorkbook2()<>"":本示例保存原来已存在且已打开的工作簿。示例03-06:保存工作簿(SaveAs方法)[示例03-06-01]SubSaveWorkbook1()MsgBox"将工作簿以指定名保存在默认文件夹中.""<工作簿名>.xls"EndSub示例说明:SaveAs方法相当于“另存为……”命令,以指定名称保存工作簿。该方法有12个参数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。[示例03-06-02]SubSaveWorkbook2()DimoldNameAsString,newNameAsStringDimfolderNameAsString,fnameAsStringoldName=="new"&oldNameMsgBox"将<"&oldName&">以<"&newName&">的名称保存"folderName==folderName&"/"&:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。[示例03-06-03]:..SubCreateBak1()MsgBox"保存工作簿并建立备份工作簿":=TrueEndSub示例说明:本示例将在当前文件夹中建立工作簿的备份。[示例03-06-04]SubCreateBak2()MsgBox"保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False."-07:取得当前打开的工作簿数(Count属性)SubWorkbookNum()MsgBox"当前已打开的工作簿数为:"&Chr(10)&-08:激活工作簿(Activate方法)[示例03-08-01]SubActivateWorkbook1()Workbooks("<工作簿名>").ActivateEndSub示例说明:Activate方法激活一个工作簿,使该工作簿为当前工作簿。[示例03-08-02]SubActivateWorkbook2()DimnAsLong,iAsLongDimbAsStringMsgBox"依次激活已经打开的工作簿"n==1TonWorkbooks(i).Activateb=MsgBox("第"&i&"个工作簿被激活,还要继续吗?",vbYesNo)Ifb=vbNoThenExitSubIfi=nThenMsgBox"最后一个工作簿已被激活."NextiEndSub示例03-09:保护工作簿(Protect方法)SubProtectWorkbook()MsgBox"保护工作簿结构,密码为123":..:="123",Structure:=TrueMsgBox"保护工作簿窗口,密码为123":="123",Windows:=TrueMsgBox"保护工作簿结构和窗口,密码为123":="123",Structure:=True,Windows:=TrueEndSub示例说明:使用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工作簿密码,要解除工作簿保护应输入此密码;参数Structure设置为True则保护工作簿结构,此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。示例03-10:解除工作簿保护(UnProtect方法)SubUnprotectWorkbook()MsgBox"取消工作簿保护""123"EndSub示例03-11:工作簿的一些通用属性示例SubtestGeneralWorkbookInfo()MsgBox"本工作簿的名称为"&"本工作簿带完整路径的名称为"&"本工作簿对象的代码名为"&"本工作簿的路径为"&"本工作簿已经是以只读方式打开"ElseMsgBox"本工作簿可读写.""本工作簿已保存."ElseMsgBox"本工作簿需要保存."EndIfEndSub示例03-12:访问工作簿的内置属性(BuiltinDocumentProperties属性)[示例03-12-01]SubShowWorkbookProperties()DimSaveTimeAsString:..OnErrorResumeNextSaveTime=("LastSaveTime").ValueIfSaveTime=""&"工作簿未保存."ElseMsgBox"本工作簿已于"&SaveTime&"保存",,:在Excel中选择菜单“文件——属性”命令时将会显示一个“属性”对话框,该对话框中包含了当前工作簿的有关信息,可以在VBA中使用BuiltinDocumentProperties属性访问工作簿的属性。上述示例代码将显示当前工作簿保存时的日期和时间。[示例03-12-02]SublistWorkbookProperties()OnErrorResumeNext'在名为"工作簿属性"的工作表中添加信息,若该工作表不存在,则新建一个工作表Worksheets("工作簿属性").<>:=Worksheets()="工作簿属性"‘-----------------------SubListProperties()DimiAsLongCells(1,1)="名称"Cells(1,2)="类型"Cells(1,3)="值"Range("A1:C1").=TrueWithActiveWorkbookFori=(i)Cells(i+1,1)=.Name:..(i+1,2)="Boolean"CasemsoPropertyTypeDateCells(i+1,2)="Date"CasemsoPropertyTypeFloatCells(i+1,2)="Float"CasemsoPropertyTypeNumberCells(i+1,2)="Number"CasemsoPropertyTypeStringCells(i+1,2)="string"EndSelectOnErrorResumeNextCells(i+1,3)=.ValueoTo0EndWithNextiEndWithRange("A:C").:本示例代码在“工作簿属性”工作表中列出了当前工作簿中的所有内置属性。示例03-13:测试工作簿中是否包含指定工作表(Sheets属性)SubtestSheetExists()MsgBox"测试工作簿中是否存在指定名称的工作表"DimbAsBooleanb=SheetExists("<指定的工作表名>")Ifb=TrueThenMsgBox"该工作表存在于工作簿中."ElseMsgBox"工作簿中没有这个工作表."EndIfEndSub‘-----------------------PrivateFunctionSheetExists(sname)AsBooleanDimxAsObjectOnErrorResumeNext:..Setx=(sname)IfErr=0ThenSheetExists=TrueElseSheetExists=FalseEndIfEndFunction示例03-14:对未打开的工作簿进行重命名(Name方法)Subrename()Name"<工作簿路径>/<旧名称>.xls"As"<工作簿路径>/<新名称>.xls"EndSub示例说明:代码中<>中的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。示例03-15:设置数字精度(PrecisionAsDisplayed属性)SubSetPrecision()DimpValueMsgBox"在当前单元格中输入1/3,并将结果算至小数点后两位"=1/=""pValue=*3MsgBox"当前单元格中的数字乘以3等于:"&pValueMsgBox"然后,将数值分类设置为[数值],即单元格中显示的精度"=TruepValue=*3MsgBox"此时,当前单元格中的数字乘以3等于:"&pValue&"而不是1"=FalseEndSub示例说明:PrecisionAsDisplayed属性的值设置为True,则表明采用单元格中所显示的数值进行计算。示例03-16:删除自定义数字格式(DeleteNumberFormat方法)SubDeleteNumberFormat()MsgBox"从当前工作簿中删除000-00-0000的数字格式"("000-00-0000")EndSub示例说明:DeleteNumberFormat方法将从指定的工作簿中删除自定义的数字格式。示例03-17:控制工作簿中图形显示(DisplatyDrawingObjects属性):..SubtestDraw()MsgBox"隐藏当前工作簿中的所有图形"=xlHideMsgBox"仅显示当前工作簿中所有图形的占位符"=xlPlaceholdersMsgBox"显示当前工作簿中的所有图形"=xlDisplayShapesEndSub示例说明:本属性作用的对象包括图表和形状。在应用本示例前,应保证工作簿中有图表或形状,以察看效果。示例03-18:指定名称(Names属性)SubtestNames()MsgBox"将当前工作簿中工作表Sheet1内单元格A1命名为说明:对于Workbook对象而言,Names属性返回的集合代表工作簿中的所有名称。示例03-19:检查工作簿的自动恢复功能(EnableAutoRecover属性)SubUseAutoRecover()'检查是否工作簿自动恢复功能开启,==TrueMsgBox"刚开启自动恢复功能."ElseMsgBox"自动恢复功能已开启."EndIfEndSub示例03-20:设置工作簿密码(Password属性)SubUsePassword()DimwbAsWorkbookSetwb==InputBox("请输入密码:"):Password属性返回或设置工作簿密码,在打开工作簿时必须输入密码。本示例代码运行后,提示设置密码,然后关闭工作簿;再次打开工作簿时,要求输入密码。示例03-21:返回工作簿用户状态信息户名".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)(Row+1,3).Value="个人工作簿"(Row+1,3).Value="共享工作簿"EndSelectNextEndWithRange("A:C").:示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用户名、打开的日期和时间及工作簿使用方式。示例03-22:检查工作簿是否有密码保护(HasPassword属性)SubIsPassword()=TrueThenMsgBox"本工作簿有密码保护,请在管理员处获取密码."ElseMsgBox"本工作簿无密码保护,您可以自由编辑."EndIfEndSub示例03-23:决定列表边框是否可见(InactiveListBorderVisible属性)SubHideListBorders()MsgBox"隐藏当前工作簿中所有非活动列表的边框."=FalseEndSub示例03-24:关闭工作簿[示例03-24-01]SubCloseWorkbook1()Msgbox“不保存所作的改变而关闭本工作簿”‘:=False‘=TrueEndsub[示例03-24-02]:..SubCloseWorkbook2()Msgbox“保存所作的改变并关闭本工作簿”[示例03-24-03]SubCloseWorkbook3()Msgbox“关闭本工作簿。如果工作簿已发生变化,则弹出是否保存更改的对话框。”[示例03-24-04]关闭并保存所有工作簿SubCloseAllWorkbooks()<>:=:=TrueEndSub[示例0