小白自学ExcelVBA道路坐标高程计算程序流程.docx
小白自学EXCeIVBA道路坐标高程计算程序流程1声明1.1 本人是个工作时间不长测量胞员.1.2 听说想轻松开心的干好测量得学门编程,又听说ExceIVBA是个简洁的可视化的常用的.1.3本人很懒,面对厚厚的全是“昏天暗地”代码的EXCe1.VBA教科书籍,实在是没心没力,其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、WhiIe、end的意思,»,还有而窗体图框.其他的就都还给老师了).1.4 谷歌、僮娘.是咱的好帮手.1.5 仰视的存在,神般的存在,无私的化身!(王中伟"教授"QQ:595077)(陈超"中铁"QQ:295188316)陈怵博的VBA代码乍一看盛觉比王老师的让人头痛,怎么说咱们也是个有志向有目标的人,要哨就哨现件头!就选一嘿咽王老师的程序吧!1.6 代码荻得.王老帅、陈帅傅担忧不懂编程的人.不当心修改代码导致程序悟误,设置fVba密码个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌僮娘,这个关于VBA密码破解,于是很不厚道的得到了南码,为了便利本次学习,又很不以道的把的密码贴出来(df750726),神人勿怪呀!2代码理解ing.我们通过密眄翻开Vba代码窗口.大家可以先把每个表格IIf1.开阅读下代码.是不是尊觉很短呀,懑觉应当是超级链接的意思.嘿嘿,主要的代码在模块*,-m.睡开下,代码笠吧,这就是咱们要肯的骨头。现在咱们冲呀!2.1第一段代码理解貌似第一段代码是定义的意思“定义n(ft"、定义桩号点"、定义坡段"、"定义根本曲税”H甬)三徜明)Pub1.icCoastPIAsDoub1.e三3.14159265358979'定义桩号点Pub1.icTypeStAPoxntNi1.eAsDoub1.一里过x三Doub1.e,fryAsDoub1.e'旌标xAsDoub1.e,SKaADoub1.e例我方位用bMDuH'RoAsDoub1.e曲至EndTyPe定义技段Pub1.icTyp«S1.opexNx1.eTi1.estAs«7AssRAseKAsSKMAxDoub1.esDoUb1.oDoub1.eDoub1.eDoub1.erDoub1.eDOUb1。iKsDoub1.e'EndTyPQ,定义基空曲戏Pub1.icTypeCUmSeCST.StaAsSt&PointEMStftAsStaPomt2Tvn谷歌译:Pub1.icConstP1.AsDoub1.e公共&P1.ii21双精度浮点型百度百科:双精度浮点数双精度浮点数(DoUbIe)用来表示带有小数局部的实效,一般用于科学计算.用8个字节(64位)存储空间,其数值范第为17E-3081.7E+308,双制度浮点数最多有15或16位卜进制有效数字,双精度浮点数的指数用"D"或"d”表示。双精度浮点数科学记数法格式:±aD±c或±ad±c在一些现代的被优化用来进展速数学计算的处理器上双精度型事实上比单精度的快.全部超出人类短验的数学函数,如sin(),cos(),和sqrt()均返回双精度的值,当你须要保持屡次反笈迭代的计算的精确性时,或在操作值很大的数字时,双精度鞭是球好的选择,个人三MKP1.是储存数据的符号,把赋值储存进去,公共常量,意思是大家都可以调用的冏定伯,虫精度浮点型应当是规定P1.能储存的数据类型(什么整数电、I1.期啦、小数啦、文字啦之类的),还布储存量(估计双制度比单精度储存的多)之类的规定, Pub1.icTypeStaPointEndType谷砍译:Pub1.icTypeStaPo1.nt(联系上下文“定义班号点”应当是StakePoint)公共类型一号点百度文康:VB中TyPe沿句的功能及用法Type语句只能在模块级运用.运用TyPe语句声明门一个用户自定义类型后,就可以在该声明范阳内的任何位次声明该类型的变录,可以运用Dim、Private.Pub1.ic.ReDim或Static来声明用户自定义类型的变量,在标准模块中,用户自定义类型按块省设置是公用的.可以遥用Private关械字来变更其可见性.而在类模块中,用户自定义类型只能是私有的,且运用Pub1.ic关键字也不能变更其可见性,在Type.EndType块中不允许运用行号和行标签。用户自定义类型常常用来表示数据记录,记录一般由多个不同数据类里的元素纲成,个人现号句定义常猿的代码1常常用工(ft,就把3.1415固定到P1.里.便利调用).运用TyPe语句分段SIaPOint/桩号点、S1.op。/坡段、CUrVeSec根本曲税)、批E定义变出的代码,这几段都是定义的双精度,之所以分段,联系下文,估计是便利常常调用,值得留意的是CurveSec3Bt定义这一段,对于ST_SW起点、EN_Sta./终点的定义,调用J'前而StaPoInU瞥号点的定义,两句话,脆把根本曲线所纪要运用参数代号都定义了,呵呵,这就是TyPe语句吧,可以相互附用,便利定义!咦?这个分割线是怎么回事?IGi用)3MtO0PenSubAutoeOpenQShQoyC欢迎So1.<tEndSqb为什么会跟下一段的SUbAuto_0pen0EndSub分开呢?点吓SUbAutoJIpMiO如dSob右上角的声明就变成"AutjOperT,声明什么意思?AUIo_OPCn又是什么意思?点击声明的卜拉列表,好家伙,全是程序(SUb)代号应当是起到一个引所书目的作用吧!触发某段代码运行.对于上面的SubAuto-OpenOEndSub代码的功能的功能脱憩的我已经猜到,是翔开EXCe1.表格,就会跳到标卷为“欢送1的页面。 SubEndSub谷砍骨:Sub.EndSub(联系上下文“定义桩号点”应当是StakePoint)程序完毕程序百度搜寻:Sub.EndSub谱句的功能及用法语法(Pub1.icIPrivate)Subname(arg1.ist)statementsExitSubstatementsEndSubSub语句的语法包含以下局部Pub1.ic表示Sub过程可被全部SCrIP1.中的全部其他过程访问.PriVate表示Sub过程只可被声明该过程的Script中的其他过程访问.NameSub的名称,遵循标准变量i名约定,ArgIiSt代表在调用时要传递给Sub过程的参数的变成列表.用过号隔开多个变量.Statements在Sub过程主体内所执行的任何语句组.用户自定义类型常常用来表示数据记录,记录般由多个不同数据类型的元素组成.在Sub过程中运用的变量分为两类:一类是在过程内显式声明的,另一类那么不是。在过程内显式声明的变加(运用Dim或等效方法)总是局部变对于那些没有在过程中:小明的变温也足I,部的,除韭在该过程外更高级别的位置显式地声明它们.Sub过程是包含在Sub语句和EndSub语句中的,系列Visua1.Basic语句。一次酒用过程时都执行过程中的语句,从Sub语句后的第一个可执行语句开场,到遇到的第一个EndSub,ExitSub或Return谱句完毕.个人理“Sub语句中SUb作为开头,是让计匏机制读代码就知道,你执行的是一个程序,而不是默认的定义一些数据,当然要先定义,才能执行,前面的代码都是公共定义,是计蚌机呆先执行的,sub里有自己小范用的dim定义。据视察给SUb后加名字,名字推终必需足(),至于为什么要加0.别问我,我是小白,我不知道”!但启动调用程序时,就干脆用写名字就行了.2.3 一切反动派都是纸老虎丫丫了个呸的!这一层一层的代码都是什么呀!太祖行云,一切反动派都是纸老虎!上去敏他去!行好听指挥,一步一步来!SubZqbOD1.DiD1.I1.iD1.zttsDoub1.e,2,IX,EKASDoubh用(3,5)AsDoub1.eryzi,jAsIntrSTI,ST2,pj,JdJj,q,aP1.P2,t1.,JDAsStringMithSh平面资料")JD三.CaisC2z2)FH(I,1)=Ce1.1.s(2,3)FIiQ,2)=.Ce1.1.s(2,4)stt三C1.1.s(2,8)EndVithShXtSe百曲表").Se1.ectRgSr6SoO").C1.oarConSntsCe1.1.s©,1)=JDC1.1.x(6,2)三PM(1,1)Cf1.1.s(6z3)=PM(I,2)Ce1.1.s(6r4)=sitDimzy,AsInteger谷歌也没搜到D.m是个啥玩意,就当成定义的意思了,定义z¼IJ为整数类型(Imeger),后面还有个定义成字符型(String)的,就是可以储存字母之类的。PM(3,5)DiBPM(3,5)AsDoub1.e里出现了个PM(3,5)百度知A1.exce1.vba中PN(3,5)是什么意思?1、ce1.1.s(行坐标.列坐标)表示一个地元格的位置,如:A1.:CE1.1.S(1,1)B2:CE1.1.S(2,2)C2:CE1.1.S(2,3)2、YBA中没有Pj(O属性,(1)可能是自定义的数级,如:dimPM(10,10)那么PM(3,5)就是这个数组的一个元素(2)或是单元格区域,如:seiPY=RANGErB2")那么B2为PM(1.1).用(3,5)就是单元格F4个人理解;DiaPM(3,5)ASDoub1.e是定义3X5=15个PY(?,?)数组元素,双精度的,可以运用这十五个PY(?,?)符号进展储存,留意其次个问号前有个空格。©WithSheetS("平面资料”).EndWith百度知道:VBA中的W1.TH语句用法及含义通俗点讲With的作用就是简化代码,让代码简洁易怪让你不须要抬入重受的内容例如:WithA1.RowHeight=10.CoIumnWidth=15EndWith相当于(A1.),RowHeight=IO(A1.),CoIumnWidth=15省去了输入许多A1.也就是说With中以,开头的就相当于WITH后的对象.什么什么什么Rows("6:500").CIearContents谷砍译:Rows("6500").Cea,Contents行去除内容百度知道,exce1.的Vb1I1Rows(6:500).CIearConte11ts是什么意思?将第6行到第SOo行的内容去除.谷砍I1.译:Work$heets(BSheet1.").Range("A1.:G37").CIearContents工作表范围去除内容2.4 探究与发觉其实就单纯的表格数据计算,所运用的VBA编程学问,是特别特别少的,换个VB编程高手,来看咱们工程坐标计以所运用的代码规那么.简点就是加减乘除而已.事实上也是如此.你只要耐性的圾同样小臼的我,一起花十几分钟看完这篇流程,你已羟有实力看慌88%的代码,并且可以简沿的修改应用。传闻ExceIVBA可以干脆接入CAD.“这就要等大家去探先发觉了,嗯嚼!!废话少说,还有几段小代码规那么,大家再来看看吧!7MZ1.EqbYithSh“