学习excel vba快速上手之宝典_第1页
学习excel vba快速上手之宝典_第2页
学习excel vba快速上手之宝典_第3页
学习excel vba快速上手之宝典_第4页
学习excel vba快速上手之宝典_第5页
已阅读5页,还剩186页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

]ExcelVBA快速上手ExcelVBA快速上手之宝典第一章ExcelVBA简明语言之基础第一节第二节第三节类第四节与常第五节使第六节和赋值语第七节规第八节语第九节语第十节其他类语句和错误语句第十程和第十部函第二章ExcelVBA常用对象之使第一节的操Excel文文本Access文第二节表操新建与删隐藏与显保护与撤第三节格操如 单元格和区如何处理单元格和单元格和区域的定单元格和区域的保第四节的操新建及类设置图表的数图表格式设散点图增加系列和文实第三章ExcelVBA高级使用第一节WinAPI的使用第二节ExcelVBA程序的使用动态连接库获得硬盘物理地加密第四章ExcelVBA优化及结束语第一节ExcelVBA优化IExcelVBA第一 标识一.定号,利用它可以完成对变量、常量、过程、函数、类等的。二.命名规字母打头,由字母、数字和下划线组成,如字符长度小于40(Excel2002以上中文版等,可以用汉字且长度可达254个字符)3)不能与VB保留关键字重名public,private,dimgoto,next,with,integer,single等第二节算定义:运算符是代表VB某种运算功能的符号1)赋值运算符数算符&、+(字符连接符)、+(加)、-(减、Mod(取余\(整除、*(乘、/(除、-(负号、^(指数等、Imp(隐含第三节据类型用Type自定义数据类型。数据类类标识字字符串 字符长度(0-字节 1布尔 2整数 2长整数 4单精度 4双精度 8日期 公货币 8小数点 变体无以上任意类可对象无4第四 变量与常VBA允许使用未定义的变量,默认是变体变量在模块通用说明部份,加入OptionExplicit语句可以强迫用户进变量定义语句及变量作用 变量 类型 '定义为局部变量,如Dimxyzasinteger 变量 类型 '定义为私有变量,如Privatexyzasbyte 变量 类型 '定义为公有变量,如Publicxyzassingle 变量 类型 '定义为全局变量,如Globlalxyzasdate 变量 类型 '定义为静态变量,如Staticxyzasdouble义则在该模块那作用。常量为变量的一种特例Const定义,且定义时赋值,程序中如下定义:Const as第五节量通过数组索引下标进行。在内存中表现为续的内存块,必须用GlobalDim语句来定义。定义规则如下:Dim数组名([lowertoupperlowertoupper,…astype缺省值为0。二维数组是按行列排列,如XYZ(行,列)BA时无大小维数;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加peseve关键字来保留。如下例:Dimarray1()asdouble:Redimarray1(5):array1(3)=250:Redimpreservearray1(5,10)第六注释和赋值语1)注释语句是用来说明程序中某些语句的功能和作用;VBA中'单引号义全以位于别的语 如:Rem定义全局变量;只能单独一2赋值语句是进行对变量或对象属性赋值的语句采用赋值号=,X=123:Form1.caption=”我的窗口”对象变量的赋值采用: 第七节写规VBA不区分标识符的字母大小写,一律认为是小写字母一行可以书写多条语句,各语句之间以冒号:分开_来标识下行为续第八节条件语句If…Then…Else语IfconditionThen[statements][Else1:IfA>BAndC<DThenA=B+2Else2:Ifx>250Thenx=x-或者,可以使用块形式的语Ifcondition[ElseIfcondition-n[elseifstatements]EndIfNumber<10Digits=ElseIfNumber<100Digits=Digits=EndSelectCase…Case…EndCase语SelectCaseCaseCaseCaseEnd -7-2017:56:02帖子★ExcelHome应用06年6月期优秀会员揭晓!等级:中级EH币:1212精华查看:帖精华:2004年11月28日第12楼※※好友※※贴子※邮件Choose函choose(index,choce-1,choice-2,…,choice-n),可以用来选择自变量它的运算结果是一个1和可选择的项目数之间choice必要参数,Variant表达式,包含可选择项目的其中之一。如:GetChoice=Choose(Ind,"Speedy","United",Switch函Switch(expr-1,value-1[,expr-2,value-2_[,expr-n,value-switch函数和Choose函数类似但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返expr必要参数,要加以计算的Variant表达式。value必要参数。如果相关的表达式为True,则返回此部分的数值或表达式,没有一个表达式为True,Switch会返回一个Null值。 -7-2017:56:23帖子荐:ExcelHomeBlog闪亮EH币:1212精华查看:帖精华:2004年11月28日第13楼※※好友※※贴子※邮件第九节环语ForNext语句指定次数来重复执行一组Forcounter=startToend[Stepstep] 'step缺省值为1[ExitNextForWords=10To1Step- 建立10次循ForChars=0To 建立10次循MyString=MyString& '将数字添加字符串 'IncrementMyString=MyString&"" '添加NextForEach…Next语句主要功能是对一个数组或集合对象进行ForEachelementIn[ExitNextForEachrang2InEnd这上面一例中用到了With…EndWith语句,目的是省去对象多End -7-2017:56:42帖子荐:ExcelHomeBlog闪亮EH币精华查看:帖精华:2004年11月28日第14楼※※好友※※贴子※邮件Do…loop语句条件为true时,重复执行区块命Do{while|until} 'while为当型循环until为直到型循环,顾名思义,不多Exit或者使用下面 do再判断,即不论如何先干ExitLoop{while|until} -7-2017:57:00帖子★一步一步教你Office2007Beta2EH币:1212精华查看:帖精华:2004年11月28日第15楼※※好友※※贴子※邮件第十节其他类语句和错误语句处一.其他循环结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然BA还支持。Gotoline该语句为跳转到line语句Onexpressiongosubdestinatioinlist或者onexpressiongotodestinationlist语句为根据exprssion表达式值来跳转到所要的行Gosubline…line…Return语句,Return返回到Gosubline行,如下例:SubDimNum=inputbox(“输入一个数字,此值将会被判断循环Ifnum>0thenGosubRoutine1:Debug.printnum:ExitEndwhile…wend语句,只要条件为TRUE,循环就执是以前VB老语法保留下来的 ‘while二.错误语句执行阶段有时会有错误的情况发生,利用OnError语句来处理误,启动一个错误的处理程序。语法如下OnErrorGotoLine 会立刻转移到line行去OnErrorResume ‘当错发生时,会立刻转移到发生错误的下一行 ‘当错误发生时,会立刻停止过程中任何错误处理过 -7-2017:57:21帖子★一步一步教你Office2007Beta2EH币:1212积分精华查看:帖精华:2004年11月28日第16楼※※好友※※贴子※邮件第十一节程和函过程可以使程序更清晰、更具结构性。BA具有四种过程:ub过程、uncton函数、ropety属性过程和vent过程。一.Sub过Sub过程的参数有两种传递方式:按值传递(ByVal)和按地址传(ByRef)。如下Subpassword(ByValxasinteger,ByRefyasIfy=100theny=x+yelsey=x-EndSubcall_passwordDimx1asDimy1asCallpassword(x1,y1) ‘调用过程方式:1.Call过程名(参数1,参数2…);2.过程名参数1,参数2…debug.printx1,y1 地址传递改变了值,而x1按值传递,未改变原值End -7-2017:57:44帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第17楼※※好友※※贴子※邮件二.Function函函数实际是实现一种映射,它通过一定的映射规则,完成运算并Byal)和按地址传递ByRe)。如下例:Functionpassword(ByValxasinteger,byrefyasinteger)asIfy=100theny=x+yelsey=x-ify=150thenpassword=trueelseEndSubcall_passwordDimx1asDimy1asifpasswordthen ‘调用函数:1.作为一个表达式放在=右端;2.作为参数使用debug.printendEnd三.Property属性过程和Event过这是VB在对象功能上添加的两个过程,与对象特征密切相关,也是VBA比较重要组成,技术比较复杂,可以参考相关书籍。 -7-2017:58:00帖子荐:ExcelHomeBlog闪亮EH币:1212精华查看:帖精华:2004年11月28日第18楼※※好友※※贴子※邮件第十二节内部VBA程序语言中有许多内置函数,可以帮助程序代码设计和一.测试函 ‘是否为数字返回Boolean结果,Trueor ‘是否是日期返回Boolean结果,Trueor ‘是否为返回Boolean结果,Trueor ‘变量是为一个数组 ‘表达式是否为 ‘表达式是否不包含任何有效数据(Null)。 ‘标识符是否二.数学函Sin(X)、Cos(X)、Tan(X)、 三角函数,单位为弧Log(x)返回x的自然Exp(x)Abs(x)返回绝Int(number)Fix(number)都返回参数的整数部Int8.4转换成-9,而Fix将-8.4转换成-Sgn(number)返回一个Variant(Integer),参数的正负Sqr(number)返回一个Double,指定参数的平VarType(varname)返回一个Integer,变量的子类Rnd(x)返回0-1之间的单精度数据,x为随机 -7-2017:58:23帖子荐:ExcelHomeBlog闪亮EH币:1212精华查看:帖精华:2004年11月28日第19楼※※好友※※贴子※邮件三.字符串函 去掉string左右两端 string左端 去掉string右端 计算string长Left(string,x) 取string左段x个字符组成Right(string,x) stringx个字符组Mid(string,start,x) stringstart位开始的x个字符 转换为大 转换为小 返回x个空白的字 string -7-2017:59:07帖子★关注2006年优秀会员评选与计划EH币:1212精华查看:帖精华:2004年11月28日第20楼※※好友※※贴子※邮件四.转换函 转换为Boolean 转换为Byte 转换为Date 转换为Integer 转换为Long 转换为Variant 转换为数据 转换为五.时间函 返回一个VariantDate),根据计算机系 返回一个Single,代表从午夜开始到现TimeSerial(hourminute,second)返回VariantDate),包含具DateDiff(interval,date1,date2[,firstdayofweek[,返回VariantLong)的值,表示两个指定日期间的时间间隔Second(time)返回Variant(Integer),其值为059之间的Minute(time)返回一个VariantInteger),其值为059之间的 返回一个VariantInteger),其值为0之间的整数,表示一天之中的某一 返回一个Variant(Integer)131之 返回一个VariantInteger),其值为1之间的整数,表示一年中的 Variant(Integer),包含表示年份的整数Weekday(date,[firstdayofweek])返回一Variant(Integer)一个整数,代表某个日期是星期 -7-2017:59:44帖子★推荐:到《优秀会员园地》成功者的学习经验EH币:1212精华查看:帖精华:2004年11月28日第23楼※※好友※※贴子※邮件第二章ExcelVBA常用对象之使第一文件的操1)Excel文一.新二.打Workbooks.Open路径&文件名三.文件打开框的使Application.GetOpenFilename(fileFilter:="Excelfiles(*.xls),*.xls,Allfiles(*.*),*.*")示例flag=DoWhileNot '打开已有Excel文 files(*.xls),*.xls,Allfiles(*.*),*.*")Iffm<>FalseThenSetbb='把bb变量设为当前活动工作簿对象,打开一工作簿时,该工作flag=TrueEndIf[此贴子已经被作者于2006-7-2018:04:08编辑过 -7-2018:00:51帖子★推荐:到《优秀会员园地》成功者的学习经验EH币:1212精华查看:帖精华:2004年11月28日第24楼※※好友※※邮一.保Workbooks("文件二.另存框的使 (*.xls),*.xls,Allfiles(*.*),*.*")示例flag=DoWhileNotflag (*.xls),*.xls,Allfiles(*.*),*.*")Iffm<>Falseactiveworkbook.SaveAsfm flag=TrueEndIf三.关所有该Excel程序打开的文件都关如果文件使用中改动过内容,那么该命令使用时会弹出提示框,询问是否保存.如果要想不弹出提示框,可以使用第三或第四种文件关闭方法,或者如下示例.示例Book1.xlsBook1.xls”中的所有修订都不会保存Application.DisyAlerts=False Application.DisyAlerts=True 四.关闭同时保Workbooks("filename.xls").Close五.关闭同时不保Workbooks("filename.xls").Close六.Excel程序的关说明使用本方法时,如果有未保存的工作簿处于打开状态,则Excel将弹出一个框,询问是否要保存所作修为防止这一情况出现,可在使用Quit方法前保存所有的工作簿或将DisyAlerts属性设置为False。如果该属性为False,则Excel退出时,即退出,也不会显示框,而且不保存就退出。如果将一个工作簿的aved属性设置为 Excel在退出时七.工作簿的保护与撤销Workbooks(“工作簿名”).Protect(Password,Structure,assdaiant作簿指定区分大小写的如果省略本参数不用就可以取消对该工作表或工作簿的保护否则必须指定通过来取消对该工作表或工作簿的保护如果忘记了就无法取消对该工作表或工作簿的保护最好在安全的地方保存一份及其对应文档名的列表。 (工作表的相对位置。默认值为FalseWindowsVariant类型,可选。如果True,则保护工作簿窗如:Workbooks(“学生”).protectWorkbooks(“学生”).Unprotectassdaiant的此是区分大小写的如果工作表或工作簿不设Excel将提示您要输入如果对工作簿省略参数,而该工作簿又设有保护,本方法将失败。[此贴子已经被作者于2006-7-2214:00:14编辑过 -7-2018:01:10帖子★关注2006年优秀会员评选与计划EH币:1212精华查看:帖精华:2004年11月28日第25楼※※好友※※贴子※邮件示例:(使用了4个文件,宏程序文件操作了另外三个文件,还涉及到文件打开另存框)一.在test.xls文件中编写一个宏程序test,完成以下内容.打开当前下test1.xls文件,计算sheet1工作表上单元格a1a10的数据剩上(0-1)的随建工作簿的sheet1a1a10上,且结果还要保存在一个任意打开的Excel文件下,示例中打开test2.xls文件,完成后关闭Excel程序test.xls模块SubDimiAsInteger,flagAsBoolean,fmDimaa,bb,cc,tempApplication.ScreenUpdating=False Application.DisyAlerts=False '打开文Setaa=flag=DoWhileNot '话框打开已有Excel文fm=Application.GetOpenFilename(fileFilter:="Excel(*.xls),*.xls,AllfilesIffm<>FalseThenflag=TrueEndIfSetcc=Fori=1Totempaa.Cells(i,1)*Int((10*Rnd)1)'生成110之间的随机.Cells(i,1)=tempbb.Sheets(1).Cells(i,1)=tempEndWithflag=DoWhileNotflag files(*.xls),*.xl_s,AllfilesIffm<>FalseThencc.SaveAsfmflag=TrueEndIf '保Setaa=Nothing:Setbb=Nothing:Setcc=Nothing '关闭Application.ScreenUpdating=True Application.DisyAlerts=True End.4文件的其它操判断文件存在与使用Dir函数判断,格式:Dir [,attributes])Dir会返回pathname的第一个文件名。示例如下strfile=Dir(ThisWorkbook.Path&"\filename.xls") Ifstrfile ‘存在就打Else‘文件不存在就警MsgBox文件不存在vbOKOnly警告End文件查使用Application.FileSearch方示例如下pp="D:\Temp":ff=With.LookIn=.Filename ‘查找文 *为指代If.Execute()>0Thenff=EndMsgBoxpp&"找到"&ff&"个文件删使用kill方示例如下文件日使用FileSystemobject对象实现,示例函数如FunctionFileDate(filespec,Dimfs,f,Setfs=Setf=SelectCaseCase1:FileDate= '建立日Case2:FileDate '存取日Case3:FileDate '修改日EndEnd[此贴子已经被作者于2006-7-2022:06:53编辑过 -7-2020:38:18帖子荐:ExcelHomeBlog闪亮EH币积分查看:帖精华:2006年7月17日第33楼※※好友※※贴子※邮件2006-7-2021:46:59帖子★推荐:ExcelHome技术的最佳学习方法EH币:1212精华查看:帖精华:2004年11月28日第34楼※※好友※※贴子※邮件文本文件操打开与新Open语句够对文件输入/输出(I/O)语 mode[Accessaccess][lock]As[#]filenumber[Len=reclength]部 描pathname 件名可能还包括、文件夹及驱动器。 必要。关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。如果未指定方式,则以Random方式打开文件。 行的操作,有Read、Write、或ReadWrite操作。 开的文件的操作,有Shared、LockRead、LockWrite、和LockReadWrite操作。 必要一个有效的文件号范围在1之间使 File函数可得到下一个可用的文件号如: 可选。小于或等于32,767(字节)的一个[此贴子已经被作者于2006-7-2022:02:00编辑过学习了VBA,才知道:Excel的使用是多么广范;Excel的功能是 -7-2021:59:42帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第35楼※※好友※※贴子※邮件说对文件做任何I/O操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行I/O之用,并决定缓冲区所使用的方式。[新建]如果pathname指定的文件不存那么在用Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。如果文件已由其它进程打开,而且不允许指定的类型,则Open操作失败,而且会有错误发生如果modeBinary方式,则Len子句会被忽略掉重在Binaynput和RandomAppend和t学习了VBA,才知道:Excel的使用是多么广范;Excel的功能是 -7-2022:00:15帖子★推荐:到《优秀会员园地》成功者的学习经验★生等级:神仙EH币:18552查看:帖精华:2004年5月20日第36楼※※好友※※贴子※邮件楼主继来生再续缘,和你共缠绵2006-7-2022:02:44帖★关注2006年优秀会员评选与计划EH币:1212精华查看:帖精华:2004年11月28日第37楼※※好友※※贴子※邮件读入与写读Input#filenumber,从已打开的顺序文件中读出数据并将数据指定给变Get[#]filenumber, umber],将一个已打开的磁盘文件读入一个变量之写将数据写入顺序文件,以双引号"数据"逗号,分隔数Print#filenumber,将格式化显示的数据写入顺序文件Put[#]filenumber, umber],将一个变量的数据写入磁盘文件中关Close[filenumberlist]关闭Open语句所打开的输入/输出文注意如果Input#语句读出文件的数据Write#语句而不用Print#语句将数据写入文件。因为在使用Write#时,将数据域分界就可确保每个数据域的完整性,因此可用Input#再将数据读出来。使用Write#还能确保任何地区的数据都被正确读出。WritePrint#语句不同,当要将数据写入文件时,Write#语句会在项目和用来标记字符串的引号之间插入逗号。Write#语句在将outputlist中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13)+Chr(10))其他文件函LOF(filenumber)返回一个Long,表示用Open语句打开的文EOF(filenumber)返回一个Integer,它包含BooleanTrue,表明已经到达为Random或顺序Input打开的文件的结尾。Loc(filenumber)返回一个Long,在已打开的文件中指定当前Seek(filenumber)返回一个Long,在Open语句打开的文件中[此贴子已经被作者于2006-7-2022:09:14编辑过 -7-2022:03:35帖子★关注2006年优秀会员评选与计划EH币:1212精华查看:帖精华:2004年11月28日第38楼※※好友※※贴子※邮件示要求:打开一文本文件test1.txt,已知其内容为空格分隔,要求把其中每行首个数据写入Excel宏程序文件的表1中,再把数据写入新建文件test2.ini中SubDimFm,iAsLong,jAsLong,kAsLongDimTT,T1OnErrorResumeIfFm=FalseThenExit '取消选择文件则出k OpenFmForInputAs#k '以随机只读的方f2 Open"c:\test2.ini"ForOutputAs#f2 '以随机方式新建一个不j=DoWhileNotEOF(k) '循环读至文件最LineInput#k,TT '读入一行数据并将T1=Split(TT) '以文本中空格来分开这个字符串并赋值给变量,请参考split函数帮助.Cells(j,1)=Print#f2,j=j+1EndClose '关闭文Close '关闭文End[此贴子已经被作者于2006-7-2022:05:32编辑过 -7-2022:04:05帖子★推荐:ExcelHome技术的最佳学习方法EH币积分查看:帖精华:2006年7月20日第39楼※※好友※※贴子※邮件强顶!很好的工具 宝典2006-7-2022:21:36帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第40楼※※好友※※贴子※邮件累呀,自己总结,自己设计示例.自己还要测试今天就到这,明天争取能把Access文件操作搞定Access文使用BA来数据库,其实就是通过一定方法借助数据库引擎来关键是使用什么方法来使用引擎目前CCES数据库常用的有DO和ADOAO就是atabaseccessect(数据库对象)的英文缩写,DO是老式的,它目前还在使用的原因是向下兼容和ADO在一些地方还没有取代DAO的功能。AO是ctveXataect(数据控件对象通过DAO或ADO可以多种类型的数据库,包括Access、SQLServer、Oracle等,也可应用程序的文件,如Excel文件、 和NEWS的文件实际上利用控件来数据库,其概念大致相同,首先都需创建,其后用Open方法产生各种类DAO使用的步骤及方(1)DAO类型从VBE的”工具/”菜单中选择可“DAO3.6ObjectLibrary”项.定义DAO对DimdbAsDatabase,Database(数据库)变量对应于Access数库DimrsAsRecordSet,RecordSet(记录集)变量对应于Access据库的一个表或子表打开数SetdbOpenDatabaseThisworkbooks.path&数据库名称.mdb"如果数据库有则下面格式打SetdbTemp=OpenDatabase("数据库路径及文件名",False,False,打开SetRSDB.OpenRecordset("表名Opendatabase方法是打开数据库并返回此数据database对象,Setdatabase的对象变量=opendatabase([路径及数据库名称],[除只读由true和false值所构成为true代表数据库仅提供的Openrecordset方法用来创建一个新的recordset对象,语法为Setrecordset对象变量=数据库变量.openrecordset(来源,种类)(table(dynaset快照集(snapshot、动态(dynamc、正向(oadonly,其中常用的时动态(dynaset实际上是一个或多个表中数据记录的集合,是功能最强的数据记录集合类型,也是默认值。操作数据库记对记录的操作就是使用记录集的对象方法和属性来实现,特附录常用属性和方法如下。记录集对象的属性和方法rs.Recordcount来记录目前数据记录的数量,如判断数据rs.EOF属性否是记录的rs.BOF属性否是记录的rs.Nomatch属性回上次查找成功rs.Moven方法移动到第n条记录rs.Movenext方法移动到下一条记录rs.MovePrevious方法动到上一条记录rs.Movefirst方法移动到第一条记录rs.Lastfirst方法移动到最后一条记录rs.Delete方法除当前记rs.Edit方法改当前(步骤为三步1.用edit方法设置为修改状态;2.将数据分别赋到记录的各字段;3.Updata方法,把记rs.AddNew方法加记将数据分别赋到记录的各字段;3.用Updata方法把记录更新到数据rs.Updata方法新内容到数据库rs.Findfirst"字段名='"&“查找内容”&"'"方法找记录rs.Findnext方法查找下一个匹配记录rs.FindLast方法查找最后一个匹配记录rs.FindPrevious方法找前一个匹配记录rs.Close方法关闭记录集关闭字段集的属性方法rsFields.Count属性段数rsFields(n)n+1个字段Fields(0)表示第一个字rs.Fields.Delete(NameAsString)方法删除字段rsFields.AppendObjectAsObject)方法加字段rs.Fields.Refresh方法更新字段的属性方法rs.Fields(n).Namers.Fields(n).Sizers.Fields(n).Typers.Fields(n).Fieldsizers.Fields(n).value示例:打开一个数据库,建立浏览,查询,修改,删除,添加等功能OptionPublictotalRecsAsLong, oAsLong'用于记住录数和当前记录号PublicDB1AsDatabase,RS1AsPrivateSub '窗口显SetDB1=OpenDatabase(ThisWorkbook.Path&"\pallet.mdb")SetRS1=DB1.OpenRecordset("pallet",dbOpenDynaset)IfRS1.EOFAndRS1.BOFMsgBox"DatabaseisNull." '指针移动到最后记录以便统计记录totalRecs=RS1.RecordCounto=1 '设置窗口参数,否可EndIfEndSubPrivateSubcmdFirst_Click() o=EndSubPrivateSubcmdLast_Click() o=EndSubPrivateSubcmdPrevious_Click() o o-EndSubPrivateSubcmdNext_Click() o o+EndSubPrivateSubcmdAdd_Click() DimiAsIntegerFori=1ToRS1.Fields(i)=Me.Controls("txt"&i)NextitotalRecs=totalRecs+o=totalRecsEndSubPrivateSubcmdDelete_Click() IfRS1.EOF=True o=totalRecs-1EndtotalRecs=totalRecs-1EndPrivateSubcmdModify_Click() DimiAsIntegerFori=1ToRS1.Fields(i)=Me.Controls("txt"&i)NextiEndSubPrivateSubcmdFind_Click() RS1.FindFirst"palletno='"&txt1.Text&"'"IfRS1.NoMatchThenMsgBox"Sorry,findo=RS1.AbsolutePosition+EndIfEndPrivateSubcmdClear_Click() DimiAsIntegerFori=1ToMe.Controls("txt"&i)=""NextiEndPrivateSubcmdExit_Click() UnloadMeEndSubSub '窗口数据DimiAso.Text= cmdFirst.Enabled= o>1cmdPrevious.Enabled= o>1cmdLast.Enabled o<cmdNext.Enabled= o<totalRecsFori=1To5Me.Controls("txt"&i).Text=EndSub[此贴子已经被作者于2006-7-2116:05:45编辑过 -7-2116:03:59帖子★参加竞赛,赚积分,赢!等级:中级EH币:1212精华查看:帖精华:2004年11月28日第56楼※※好友※※贴子※邮件点击浏览该文在网友的基础上修改完善做的一个例子大家可以学会基本的ADO方法使用Access数据库3.2ADO使用的步骤及(1).ADO类型从VBE的工具/菜单中选择可ActiveXDataObject2.5Library”项.定义和生成ADO对DimCnnAsNew ‘数据库连接Connection对象DimRstAsNewADODB.Recordset DimFldAs ‘记录字段对象变打开数据 ThisWorkbook.Path&"\CONTACT1.MDB;"用定义生成的数据库连接对象的open方法,打开一个数据库打开表或建立表的子Rst.Open"SELECT 字段名[,字段名]FROM 表名",Cnn,adOpenKeyset,adLockOptimistic用记录集对象的open或生成一个数据库的表或子表记如:Rs1.Open" ",Cnn,adOpenKeyset,adLockOptimistic 操作数据库记对记录的操作就是使用记录集的对象方法和属性来实现,属性和方法其实与DAO用ADO.示例:打开一个数据库,建立浏览,修改,删除,添加和筛选等功(使用ADO修改和删除记录时,最关键一条就是主关键字段要不能重复,所以我们需要建立主关键字段为自动编号类型格式,Access自动编号,这样就不会重复,否则出错)OptionPublictotalRecsAsLong, oAsLong '用于记住录数和当前记录号PublicCnnAsADODB.Connection '定义全局数PublicRs1As'窗体启动程PrivateSub '创建接和打开Cnn连接 '创建一个记Cnn.Open"Provider= .Jet.OLEDB.4.0;DataSource="&ThisWorkbook.Path&"\CONTACT1.MDB;" totalRecs=Rs1.RecordCounto=1 EndSub'****[第一条]按钮程序PrivateSubo=1CallEnd'****[上一条]按钮程序PrivateSubo o-Calldis_formEndSub'****[下一条]按钮程序PrivateSubo o+Calldis_formEndSub'****[最后一条]按钮程序****PrivateSubCommandButton4_Click()o=totalRecsCalldis_formEnd'****[删除]按钮程序PrivateSubtotalRecs=totalRecs-1IfRs1.EOF=TrueTheno o-End '更新数据记录集这点与DAO方法不同,DAO删除后不需更新Calldis_formEndSub'****关闭]按钮PrivateSubCommandButton6_Click()SetRs1=Nothing:SetCnn=Nothing UnloadMe '关闭窗体End'****[更新]按钮程序PrivateSubCommandButton8_Click()OnErrorResumeNextRs1.Fields(1)=TextBox1.TextRs1.Fields(2)=TextBox2.TextRs1.Fields(3)=TextBox3.TextRs1.Fields(4)=TextBox4.TextEnd'****[查找]按钮程序PrivateSubCommandButton10_Click()DimRs2AsNewADODB.RecordsetDimiAsIntegerRs2.Openselect* where联系人编号like ‘SQL语言使用,查询生成新的记IfRs2.EOFAndRs2.BOFThenMsgBox"Notfind!"Fori=0ToRs2.Fields.Count-1Sheets(1).Cells(1,i+1)=Rs2.Fields(i).NameSheets(1).Cells(2,1).CopyFromRecordsetRs2MsgBox"ThefindresultisdisyedinExcel."EndIfSetRs2=NothingEndSub'****[添加]按钮程序PrivateSub'添加一条记录Fields(0)字段为主键且Access自动编号,totalRecs=totalRecs+1o=totalRecsCalldis_formEndPrivateSubdis_form()TextBox1.Text=Rs1.Fields(1)TextBox2.Text=Rs1.Fields(2)TextBox3.Text=Rs1.Fields(3)TextBox4.Text=Rs1.Fields(4)TextBox5.Text=Rs1.Fields(5)TextBox6.Text=Rs1.Fields(6)TextBox7.Text=Rs1.Fields(7)TextBox8.Text=Rs1.Fields(8)CommandButton1.Enabled o>CommandButton2.Enabled= o>1CommandButton3.Enabled= o<totalRecsCommandButton4.Enabled= o<totalRecsTextBox9= End数据库使用SQL查询语数据库一般都提供了关连式数据库的查询语SQL(StructuredQueryLanguage),它是一种非常口语化、既易学又易懂的语法。语言几乎是每个数据库系统都必须提供的,用以表示关连式的操作,包含了资料的定义D)以及资料的处理ML。对于SQL语言的使用,请参考别的专业,本文就简约介绍一下,示例中也仅用到一点SQL语言。(6.1)资料定义DDL(DataDefinition资料定义语言是指对资料的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什么字段元主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。如建表格:CreateTabletable_name(column1DATATYPE[NOTNULL][NOTNULLPRIMARYKEY],column2DATATYPE[NOT(6.2)资料操作DML(DataManipulation资料定义好之后接下来的就是资料的操作。资料的操作不外(inset)、(quey(update)除资料(delete)四种模式,以下分别介绍他们的语法:增加资料INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,...)查询资料:SELECT*FROMtable_nameWHERE更改资料UPDATEtable_nameSETcolumn1=''xxx''WHERE删除资料:DELETEFROMtable_nameWHERE[此贴子已经被作者于2006-7-2212:42:40编辑过 -7-2211:37:33帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第69楼※※好友※※贴子※邮件示例:打开一个数据库,建立浏览,修改,删除,添加和筛选等功能。使用ADO修改和删除记录时,最关键一条就是主关键字段不能重复,所以我们需要建立主关键字段为自动编号类型(Access自动编点击浏览该文以下是五彩缤纷在2006-7-2212:10:13的发言写上示例,大家看看就完了,没起到作用在此,我目的是让大家迅速上手,能懂xcelBA最基本的使用及功能在实战一段时间后对更深刻的知识就要个人去花时间和精力学习了。就这些内容的吃透,也是我花了很多精力的,比如ADO的使用,就没看到一个好的例子,没几本书有我的例子全面详细,还有好多例子是运行出错的,做的不好。 -7-2212:50:49帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第72楼※※好友※※贴子※邮件第二工作表操在文件操作一节已经Excel工作簿文件的打开、新建、保存新建与删新建工作表、图表或宏表。新建的工作表将成为活动工作表Sheets.AddBefore,AfterCount, 说明 Variant类型,可选。指定工作表对象,新建的工作表将 Variant类型,可选。要新建的工作表的数目。默认1TypeVariant类型,可选。指定工作表类型。可为以下XlSheetType常量之一:xlWorksheetxlChartxlExcel4MacroSheet或xlExcel4IntlMacroSheet。默认值为xlWorksheet。如果Before和After两者均省略,则新建的工作表将插入到活示例:Sheets.Add 该语句可以在最一个工作表后增加一个新删除工Sheets(“工作表示例:在工作表末新建一个和删除倒数第二个SubApplication.DisyAlerts= '关闭删除确认Sheets.AddSheets(Sheets.Count-Application.DisyAlerts= '开启确认End隐藏与显使用工作表的visible属性来设置工作表是否隐藏或显隐Sheets("sheet2").Visible=显保护与撤保护工作表使其不至被修改Sheets(“工作表名”).Protect撤销工作表保护使其被修改Sheets(“工作表名”).UnprotectPasswordVariant类型可选一个字符串符串为工作示例: “ ” “ Sheets(“sheet1”).Unprotect如果要对工作进行详细保护设置,可参ExcelVBA参考,这里[此贴子已经被作者于2006-7-2214:13:04编辑过 -7-2214:11:52帖子★一步一步教你Office2007Beta2EH币:756积分查看:帖精华:2006年5月13日第73楼※※好友※※贴子※邮件又等到了,收藏学习,继续等待辛苦辛2006-7-2215:22:55帖★推荐:到《优秀会员园地》成功者的学习经验EH币:1212精华查看:帖精华:2004年11月28日第74楼※※好友※※贴子※邮件第三节单元格和区域操Excel数据的计算归根到底还是对表的单元进行单元格和一、如何单元格和区用Range属性单元格和单元格区使用Range属性来A1样式中的单元格或单元格区域Sheets("Sheet1").Range("A1:D5").Font.Bold=TrueSheets("Sheet1").Range("A1:D5").Value=10000Range对象既可表单个单元格,也可表单元格区域。下面说明Range对象最常用方 含义 单元格 从单元格A1到单元格B5的区 多块选定区 A 第一 从第一行到第五行的 第1、3和8 A列到C列的区 A、C和FRange("单元格区称 命名的单元格区用Cells属性单元可用Cells属性通过行列编号来单个单元格。下例中Cells(6,1)返回Sheet1上的单元格A6,然后将Value属性设置为10。如:Worksheets("Sheet1").Cells(6,1).Value=10Cells属性非常适合单元格区SubCCDimCounterAsIntegerForCounter=1To20NextCounterEnd用Rows或Columns属性行可用Rows属性或Columns属性来处理整行或整列例中Rows(1)返回Sheet1上的第一行,然后将单元格区域的Font对象的Bold属性设置为True。如:Worksheets("Sheet1").Rows(1).Font.Bold=True下表举例说明了使用Rows和Columns属性的一些行和列的引含义 第一 工作表上所有 第一 第一 工作表上所有的Union方法合并区域后若要同时处理若干行或列及区域,请创建一个对象变量并使用Union方法,将对多个区域组合起来。下例将活动工作簿中第一张工SubSeveralRows()DimmyUnionAsRangeSetmyUnion=Union(Rows(1),Rows(3),Rows(5))myUnion.Font.Bold=TrueEnd用括号[]单元格和区可用方括号将1样式或命名区域括起来,作为Range性的快捷方式。这样就不必键入单词“Range”或使用引号,如下例所示:oksheetsheet1B5].CleaContents用Offset相对其他单元格来单元处理相对于另一个单元格的某一单元格的常用方法是使用set如:ActiveCell.Offset(1,3).Font.Underline用Selection属性活动区Select方法激活工作表和工作表上的对象;而Selection属性返用Selection属性之前,必须先激活工作簿,并激活或选定工作表,然后用Select方法选定单元格区域(或其他对象。宏录制器经常创建使用Select方法和Selection属性的宏。下述Sub过程是用宏录制器创建的,该过程演示了Select方法和Selection属性在一起使用的方法。SubActiveCell.FormulaR1C1="Name"ActiveCell.FormulaR1C1="Address"Selection.Font.Bold=TrueEnd区域中循环单元格方使用BAFor...Next循环语句与Cells属性配合使使用Cells属性时,可用循环计数器(或其他变量或表达式)来替代单元格索引编号。下例中counter代替行号。此过程在单元格区域C1:C20中循环,将绝对值小于0.01的单元都置为0。SubForCounter=1ToIfAbs(Cells(counter,3).value)<0.01ThenCells(counter,3)0EndSubForEach...Next循环语句和Range属性配合使示例如SubForEachcInWorksheets("Sheet1").Range("A1:D10").CellsIfAbs(c.Value)<0.01Thenc.Value=0EndSub二、如何处理单元格和区处理三维区如果要处理若干工作表上相同位置的单元格区Array函SubSheets(Array("Sheet2","Sheet3","Sheet5")).SelectSelection.Borders(xlBottom).LineStyle=xlDoubleEnd处理活动单ActiveCell属性返回代表活动单元Range对象可对活动单元格应用Range对象的任何属性和方法,如下例所示。SubActiveCell.Value=35End注意 只有活动单元格所在的工作表处于活动状态时才能处该活动单元格。选择活动单元格周围的单CuentRegion属性返回由空白行和空白列所包围的单元格区域。下例中,选定区域扩充到与活动单元格相邻的包含数据的单元格中,然后用“货币”样式设置该区域的格式。SubSelection.Style="Currency"End单元格和区域赋用赋值号=值,如给A1赋值为10:Range(A1).Value=10(由于Value是默认属性,所以可以直接省略)区域赋值,如单元格和区域赋予进行计把字符串赋予给单元格或区域的Formula属性,如下例:注意一点是字符串中要有开头的等号=。SubWorksheets("Sheet1").Range("D6").Formula=End -7-2215:58:50帖子★一步一步教你Office2007Beta2EH币:1212精华查看:帖精华:2004年11月28日第75楼※※好友※※贴子※邮件三、单元格和区域的使用单元格的End属性来定位边界 选定包含单B4”的区域在B列中顶端的单元格:选定包含单元格B4”的区域在第4行中最右端的单元格B4元格:Range("B4",Range("B4").End2已用区域UsedRange对象来获得区域范如:需要获得先前表格已用区域的最右下角单元格位SubLoctemp=[a1]:[a1]=1 ‘使用A1单元格,保证已用区域从A1开始irow ‘右下单元icol ‘右下单元格[a1]= ‘还原A1值Cells(irow, ‘选中右下角格End -7-2216:21:31帖子★参加竞赛,赚积分,赢!EH币:1212精华查看:帖精华:2004年11月28日第76楼※※好友※※贴子※邮件四、单元格和区域的保护与工作表选择改变过程中保护,如下:不用户选择及改动保护单元格区域,示例中保护B1:B10PrivateSubWorksheet_SelectionChange(ByValTargetAsDimrngAsSetrng=IfIntersect(Target,rng)IsNothingThenExitSub MsgBox"不可以选取单元格!"&Target.Address End通过行列的隐藏来本示例隐藏工作表“Sheet1”的第5CSubWith ‘使用With…End语句块,提高 ‘撤销保护如果原先未保护则不需该.Rows(5).Hidden ‘隐藏第5.Columns("C").Hidden ‘隐藏C ‘启动护,如果原先未保护则不需EndEnd通过锁定区域来保护,可限定未锁定区域内SubCells.Locked= ‘锁定全Range("a1:b10").Locked=false End[此贴子已经被作者于2006-7-2217:19:14编辑过 -7-2217:13:39帖子★参加竞赛,赚积分,赢!EH币积分查看:帖精华:2005年6月23日第77楼※※好友※※贴子※邮件今天看了一下午,收获挺大的,感谢楼主的大度和辛勤劳动2006-7-2217:24:18帖★推荐:到《优秀会员园地》成功者的学习经验EH币:52查看:帖精华:2002年5月23日第78楼※※好友※※贴子※邮件太好了,言简意赅,很有启发性,对大家学习和研究都有一定的指导意义,谢谢楼主,您辛苦了。2006-72221:10:27帖子★参加竞赛,赚积分,赢!EH币:439积分查看:帖精华:2005年6月24日第79楼※※好友※※贴子※邮件致楼主太感谢你无私的写出这些给我们共享,这也是我看到的最容易看懂的有关BA的系统的文章。向您辛勤的劳动表示最崇高的敬意!BA初学者的角度来看,虽然楼主写的相当通俗易懂,但缺乏相BA初学者的最经典最实用的书籍之一让的BA爱好者受益。此贴子已经被作者于2006-7-2221:18:24编辑过]2006-7-21:15:03帖★ExcelHome应用06年6月期优秀会员揭晓!rich-EH币:486积分查看:帖精华:2006年3月4日第80楼※※好友※※贴※邮谢谢!支持楼主“事第四表的操Excel让人喜爱的原因就是它有强大得计算功能和数图相关联的数据作图功能。本节就介绍下VBA代码作图方面内容。通过代作重复的图,可以大大提高效率,比如我的作品 VBA代码的作用,最后优化而成通用程序块。一.新建及类设置一个对象等于新增图表对象就建立好了一个新新图赋值给对象变 ChrWidth,ChrHeight)说明:增加一个嵌入图表,其左上角的位置坐标为(Chrop和0.035厘米,字体大小通常用磅数量度。图的类型可以更改Chart对象的属性ChartType来实2.1)图表对象变量的使mychart.Chart.ChartType=xlXYScatterLines '散点2.2)未设置对象变量的它的类型更改需要在增加它后,连续操作让它处于激活状态(ActiveChart,这样可通过当前活动ActiveChart来使用。 ‘饼3.1)嵌入工作表上ActiveChart.LocationWhere:=xlLocationAsObject,Name:=或如1.1生成新图时就定义为生成嵌入图ChartObjects.AddActiveChart.LocationWhere:=xlLocationAsNewSheet或用图表对象变量属性更改mychart.locationwhere:=xlLocationAsNewSheet二.设置图表的数一般是使用Excel表格上数据以可以通过设置Chart图表对象DateSource:=Sheets("Sheet1").Range("A1:B6"),PlotBy:=xlColumns这里的lotBy:=xlColumnsPloBy:=xlRows。另外一种数据设置是对图的横、纵坐标数据分别赋值。如‘增加一个系列数mychart.chart.SeriesCollection(1).XValues=Array(45,‘横坐标数据组或单元对mychart.chart.SeriesCollection(1).Values=Array(50,‘纵坐标数据组或单元对三.图表格式对于图的格式设置,一般是录制一个宏,再删除不需要的语句,四.散点图增加一个系列和增加文字用图表的系列集合对象的方法NewSeries,就可以增加图的系‘增加一个系列数 ‘横坐标数据组或单元对 ‘纵坐标数据组或单元对对于散点图我们可以增加文字于图上方法如下增即可。如下示例 '不显示点标 '数据标记及显示文字 ”标签文字'文 End -7-2221:52:18帖子★推荐:ExcelHome技术的最佳学习方法EH币:1212积分精华查看:帖精华:2004年11月28日第83楼※※好友※※贴子※邮件五.实生成一个散点嵌入图于工作表制一“Test100代码和详细注释如下Sub'*******************************图表对象的定义和生成'定义对象变量,以便设置它为图表(chart)对象及图位小变DimmychartAsObject,mysheetAsDimChrLeftAsLong,ChrTopAsLong,ChrWidthAsLong,ChrHeightAsLongOnErrorResumeChrWidth=250:ChrHeight= ChrWidth)/2 ChrHeight)/2 Setmychart=Sheets(1).ChartObjects.Add(ChrLeft, '增加一次投点,画条直.SeriesCollection(1).XValues=Array(45, '1是否显示数据 '点1的文'增加一次投点,就投个点EndWith 图表风格定义Withmychart.Chart '图表字符的 'X轴是否有坐标 .Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Y"'Y轴坐标名"Y" '定义投图区为透End '定义X坐标轴最小 '定义X坐标轴最大 '定义次刻度线单 '定义主刻度线单 'X轴交汇点设为 '次刻度线方向朝 '是否显示次网格End '定义y坐标轴最小 '定义y坐标轴最大 '定义次刻度线单 '定义主刻度线单 'Y轴交汇点设为 '次刻度线方向朝 '是否显示次网格End End根据工作表一的A1:B10数据生成柱状图嵌入表一,位置为SubOnErrorResumeNextApplication.ScreenUpdating=False '使用With...Endwith块,减少对象次数,提高效.ChartType=.LocationWhere:=xlLocationAsObject,Name:="Sheet1"EndWith.Shapes(.Shapes.Count).Left=.Cells(11,3).Left .Shapes(.Shapes.Count).Top=.Cells(11,3).Top EndWithApplication.ScreenUpdating=TrueEnd[此贴子已经被作者于2006-7-238:54:46编辑过 -7-2221:52:36帖子★推荐:到《优秀会员园地》成功者的学习经验EH币:1212精华查看:帖精华:2004年11月28日第84楼※※好友※※邮请见绘图示例,仔细看看,相信这两个例子解决了大家很想知道的一些东西。还是建议大家通过录制宏,修改宏代码,学习图表设置的参点击浏览该文[此贴子已经被作者于2006-7-238:56:03编辑过 -7-2221:54:52帖子★推荐:ExcelHome技术的最佳学习方法EH币精华查看:帖精华:2004年11月28日第85楼※※好友※※贴子※邮件以下是zhuxiangji在2006-7-2221:15:03的发言致楼主太感谢你无私的写出这些给我们共享,这也是我看到的最容易看懂的有关BA的系统的文章。向您辛勤的劳动表示最崇高的敬意!BA初学者的角度来看,虽然楼主写的相当通俗易懂,但缺乏相BA初学者的最经典最实用的书籍之一让的BA爱好者受益。。手写代码亲身体验告诉了大家ExcelVBA这个东西及其用容,因为我也写的够口水话了。如果完成了后,我会加上示例,重新排版,加上图表,希望能成为一本对学习VBA有用的书。因为东西,很多书上都没说明白ADO增加记录不能重复关键词内容,VBA作图的位置定位、大小设置等。。[此贴子已经被作者于2006-7-2222:05:59编辑过 -7-2222:03:22帖子★一步一步教你Office2007Beta2等级:中级EH币:1212精华查看:帖精华:2004年11月28日第86楼※※好友※※贴子※邮件给大家提几个问题来解决,不然光看是学不到实际东西的,要动手。问题1:26个英文字母大小写,任意四个组合,把组合结果存放Excel1A列。问题2:同1题,把结果写入一个文本文件中问题3:使用文件打开框打开上一个文本文件读入数据Excel表问题4:把上一Excel表的组合数据存到一Access数据库中,自问题526个小写字母,赋予随机的坐标(x,y,并把26(x,y)绘制在一张Excel散点图上,每点旁边都有对应的字希望能看到大家的结果,请上传 -7-2223:05:19帖子荐:ExcelHomeBlog闪亮EH币:1212精华查看:帖精华:2004年11月28日第87楼※※好友※※贴子※邮件第三章ExcelVBA高级使通过以上章节的学习,估计大家都够能使用xcelBA进行基本的数据计算、数据汇总、数据的保存、数据库的使用和绘制图表了,indowsI来解决。indosI是indows的32位应用程序编程接口,是一系列DLindows系统的电脑都有标准的indows动态连接库文件编程人员可用不同编程语言的方法来使用它们,进而编制出解决indows系统底层问题的应用程序。xcelBA中使用I可以让我们轻松实现一些高级功能比如多等所以有必要了解一些AI在xcelBA中的使用。一般来讲,只有会了indowsI才算真正进入了indos系统下程序开发的大门。第一节WinAPI的使 -7-2310:05:37帖子★参加竞赛,赚积分,赢!★烟雨任平EH币:453积分查看:帖精华:2006年3月7日第88楼※※好友※※贴※邮好东西最想看VBA的高级使等待续级2006-7-2311:14:53帖★推荐《优秀会员园地成功者的学习经验EH币积分查看:帖精华:2005年12月30日第89楼※※好友※※贴子※邮件最希望看到的资料就要出现了,等待中着实佩服楼主的无私精神,辛苦2006-7-2311:27:54帖荐:ExcelHomeBlog闪亮EH币:1212精华查看:帖精华:2004年11月28日第90楼※※好友※※贴子※邮件我都不好意思啦,大家都这么鼓励我也没有搞的那么深刻,对API我也只会需要时去查下函数,调用调用对每个函数需要自己亲身体验才深刻果要对API搞精通,那是需要花很多时间,估计要3个月吧(还是对于有些基础的)。第一节APIWin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论