小白自学EcelVBA道路坐标高程计算程序流程

上传人:m**** 文档编号:169836283 上传时间:2022-11-17 格式:DOCX 页数:15 大小:145.74KB
收藏 版权申诉 举报 下载
小白自学EcelVBA道路坐标高程计算程序流程_第1页
第1页 / 共15页
小白自学EcelVBA道路坐标高程计算程序流程_第2页
第2页 / 共15页
小白自学EcelVBA道路坐标高程计算程序流程_第3页
第3页 / 共15页
资源描述:

《小白自学EcelVBA道路坐标高程计算程序流程》由会员分享,可在线阅读,更多相关《小白自学EcelVBA道路坐标高程计算程序流程(15页珍藏版)》请在装配图网上搜索。

1、小白自学ExcelVBA道路坐标高程计算程序流程1声明i.i本人是个工作时间不长测量施工员。1.2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的 1.3本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。 其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、while、end的意思,嘿嘿,还有 画窗体图框,其他的就都还给老师了)。1.4谷歌、度娘,是咱的好帮手。1.5仰望的存在,神一般的存在,无私的化身!道路中边桩坐标计算程序120424.xls (王中伟”教授”QQ: 595077)曲线坐标计算程序VBA 4.6.xls

2、 (陈超”中铁”QQ: 295188316)陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标 的人,要啃就啃硬骨头!就选嘿嘿王老师的程序吧!1.6道路中边桩坐标计算程序120424.xls代码获取。王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了 vba密码(个 人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA 密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐 标计算程序120424.xls的密码贴出来(df750726),神人勿怪呀!2代码理解ing我们通过密码打开vba代码窗口

3、,大家可以先把每个表格打开浏览一下代码,是不是感 觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“x”里,打开下,代码 多吧,这就是咱们要肯的骨头。现在咱们冲呀!21第一段代码理解貌似第一段代码是定义的意思“定义n值”定义桩号点”、“定义坡段” “定义基本 曲线”|礎用)Putlic Cons-t PI As Double = 3. 14159265353979定文桩号点As D cjubl e f 里程Double 也:阪Double 去听Dut.lsDouble 建方f立角Dcublfi Futli c Type aloiRtMileK辰 y As:As % As h AsRq

4、 As iQuble 曲率 End定文坡段As Double 起点 As Ilrmble 皱-占 H-:.uble ;起点切乌 IlijubleD Ciubl eIiriubleIl -jubl eFutili c Tvt Siu卫已 sMile aMile st Ae sT As eR Ae eR As sK Asi 居 DoubLeEndJ定义基本曲线Futli c Type CurveSecST_Sta As StaTointEN_Sta As StaPoint End Tree Public Const PI As Double = 3.14159265358979谷歌翻译:Publi

5、c Const PI As Double公共常量 巳作为双精度浮点型百度百科:双精度浮点数双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个 字节(64位)存储空间,其数值范围为1.7E-3081.7E+308,双精度浮点数最多有15或 16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。双精度浮点数科学记数法格式:土aD土c或土ad土c在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。 所有超出人类经验的数学函数,如sin( ),cos(),和sqrt()均返回双精度的值。当你需要 保持多次反复迭代的计算的精确性时,或在操作值

6、很大的数字时,双精度型是最好的选择。 个人理解:PI是储存数据的符号,把3.14159265358979赋值储存进去,公共常量,意思是 大家都可以调用的固定值,双精度浮点型应该是规定PI能储存的数据类型(什么整数啦、 日期啦、小数啦、文字啦之类的),还有储存量(估计双精度比单精度储存的多)之类的规 定。谷歌翻译:Public Type StaPoint (联系上下文“定义桩号点”应该是Stake Point)公共类型桩号点百度文库:VB中Type语句的功能及用法Type语句只能在模块级使用。使用Type语句声明了一个用户自定义类型后,就可以 在该声明范围内的任 何位置声明该类型的变量。可以使用

7、Dim、Private、Public、ReDim 或Static来声明用户自定义类型的变量。在标准模块中,用户自定义类型按缺省设置是公用的。可以使用Private关键字来改 变其可见性。而在类模块中,用户自定义类型只能是私有的,且使用Public关键字也不 能改变其可见性。在Type.End Type块中不允许使用行号和行标签。用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组成。 个人理解:号句定义了常量的代码(经常用n值,就把3.1415固定到PI里,方便调用)。 使用Type语句分段(StaPoint/桩号点、Slope/坡段、CurveSec/基本曲线)、批量自定义

8、 变量的代码,这几段都是定义的双精度,之所以分段,联系下文,估计是方便经常调用。值得注意的是CurveSec/基本曲线 定义这一段,对于ST_Sta/起点、EN_Sta、/终点 的定义,调用了前面StaPoint/桩号点的定义,两句话,直接把基本曲线所需要使用参数代 号都定义了,呵呵,这就是Type语句吧,可以相互调用,方便定义!2.2咦?这个分割线是怎么回事?1僵用)” |Kut o_OpenSuB Aut o Op ehSheets就迎).SEnd Sub为什么会跟下一段的Sub Auto_0pen()End Sub分开呢?点一下Sub Auto_Open()End Sub右上角的“声明”

9、就变成“Auto_0pen”,声明什么意思? Auto_0pen又是什么意思?点击声明的下拉列表,好家伙,全是程序(sub)代 号,应该是起到一个引所目录的作用吧!触发某段代码运行.对于上面的Sub Auto_Open()End Sub代码的功能的功能聪明的我已经猜到,是打开Excel表格,就会跳到标签为“欢迎”的页面。 SubEnd Sub谷歌翻译:SubEnd Sub (联系上下文“定义桩号点”应该是Stake Point)程序 结束程序百度搜索:Sub End Sub语句的功能及用法语法Public | Private Sub name (arglist)stateme ntsExit

10、Substateme ntsEnd SubSub语句的语法包含以下部分Public表示Sub过程可被所有Script中的所有其他过程访问。Private表示Sub过程只可被声明该过程的Script中的其他过程访问。Name Sub的名称,遵循标准变量命名约定。Arglist代表在调用时要传递给Sub过程的参数的变量列表。用逗号隔开多个变量。Statements在Sub过程主体内所执行的任何语句组。用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组成。在Sub过程中使用的变量分为两类:一类是在过程内显式声明的,另一类则不是。在 过程内显式声明的变量(使用Dim或等效方法)总是

11、局部变量。对于那些没有在过程中显 式声明的变量也是局部的,除非在该过程外更高级别的位置显式地声明它们。Sub过程是包含在Sub语句和End Sub语句中的一系列Visual Basic语句。每次 调用过程时都执行过程中的语句,从Sub语句后的第一个可执行语句开始,到遇到的第一 个 End Sub、Exit Sub 或 Return 语句结束。个人理解:Sub语句中sub作为开头,是让计算机一阅读代码就知道,你执行的是一个程序, 而不是默认的定义一些数据,当然要先定义,才能执行,前面的代码都是公共定义,是 计算机最先执行的,sub里有自己小范围的dim定义。据观察给sub后加名字,名字最后必 须

12、是(),至于为什么要加(),别问我,我是小白,我不知道!但启动调用程序时,就直 接用写名字就行了。23 切反动派都是纸老虎丫丫了个呸的!这一层一层的代码都是什么呀!太祖有云,一切反动派都是纸老虎!上 去戳他去!行动听指挥,一步一步来!rwhi 莎Sub ZqbODim FM (3, 5) As DiublsDim zv. i. i As Int已芒已厂Din. STI. ST2, PJil J-lJj. sit As DoubleDim ijl., pl., p2_. tl., t2_. ly_, LL_. EJf As Eli utile D i m JIl Xe S tr i ngWith

13、 Sheets r平面资斜“)JT = .C&llsG, 2)FM (1, 1) = . Cells(2,对PM (1, 2) = . Cells C2, 4 itt = . Cells C2, 8)End WithSLeet s (直曲表).SelectRqws (6;500).ClearContsntsCells 1= JBCells (6,1)Cells (B, 3) =2)Cells (6,心二 stt Dim zy, i, j As Integer谷歌也没搜到Dim是个啥玩意,就当成定义的意思了,定义zy, i, j为整数类型(Integer), 后面还有个定义成字符型(String

14、)的,就是可以储存字母之类的。 PM(3, 5)Dim PM(3, 5) As Double 里出现了个 PM(3, 5)百度知道:excel vba中PM(3,5)是什么意思?1、cells(行坐标,列坐标)表示一个单元格的位置,如:A1 :CELLS(1,1)B2:CELLS(2,2)C2: CELLS(2,3)2、VBA中没有PM()属性,(1) 可能是自定义的数组,如:dim PM(10,10)则PM(3,5)就是这个数组的一个元素(2) 或是单元格区域,如:set PM=RANGE(B2)则B2为PM(1,1),PM(3,5)就是单元格F4个人理解:Dim PM(3, 5) As D

15、ouble是定义3X5=15个PM(?,?)数组元素,双精度的,可以使用这十五个PM (?,?)符号进行储存,注意第二个问号前有个空格。 With Sheets(平面资料)End With百度知道:VBA中的WITH语句用法及含义通俗点讲with的作用就是简化代码,让代码简洁易懂让你不需要输入重复的内容例如:With A1.RowHeight = 10.ColumnWidth = 15End With相当于A1.RowHeight = 10A1.ColumnWidth = 15省去了输入很多A1也就是说with中以.开头的就相当于WITH 后的对象 .什么什么什么 Rows(6:500).Cl

16、earContents谷歌翻译:Rows(6:500).ClearContents行清除内容百度知道:excel 的 vb 中 Rows( 6:500 ).ClearContents是什么意思? 将第6行到第500行的内容清除。谷歌翻译:Worksheets(Sheet1).Range(A1:G37).ClearContents工作表范围清除内容24探索与发现其实就单纯的表格数据计算,所使用的VBA编程知识,是非常非常少的,换个VB编程 高手,来看咱们工程坐标计算所使用的代码规则,简直就是加减乘除而已。事实上也是如此, 你只要耐心的跟同样小白的我,一起花十几分钟看完这篇流程,你已经有能力看懂8

17、8%的代 码,并且可以简单的修改应用。传说ExcelVBA可以直接接入CAD.这就要等大家去探索发 现了,嘿嘿!废话少说,还有几段小代码规则,大家再来看看吧!|德用)二J両With Sheets r平面贵料9For i = 2 To 8000nh .1!T _ 4If . Cells (i + Z 3)= FIH11) = . Cells G, FIH1, 2) = .Cells Ch TD = . Cells (i 十 1, 2)For j = 3 Tc TPM 一 2) = . Cells (i + 1, j)Ifei: t _iJ i+當方俭角STI = Fwj fPM (1,1)FM

18、(1,2),FM lj,FM(2, 2)Tdjj 二 j j (FM (L1);FM (1;2FMI)rFM(2, 2)填耳盲曲表Cells (i + 5, Cells (i + 5, Cells (i + 5, Cells (i + 5 Cells (i + 5 Cells (i + 5 Cells (i + 512 3 2 145 J4 )4 1 + TuiG5 .L. Y 1 JI s aeeiJfilllOD -H- M M Jc e t J F F c二一一 一一I C-JW - Cells Ci + 4, 11J - Cells (i + 5, 10) 18) + Cells (i

19、 + E, 19)L- :=lL1 xj-ysExit SubEnd Ij If .Cells(i + 2, 3) = Then End If如果你连if、while、for这些条件循环语句都不懂的话,那你真比我还小白了,哈哈! 这段代码并不难,之所以拿出来研究,还是为了消除大家的畏惧心理,嘿嘿!!百度搜索:这个语句可判断If Cells(j, 2) = Then这个单元格“Cells(j, 2)”是空白单元格吗? 如果cells(j,2)为空的话,这时候下一步,这里的双引号是空的意思。F面,好菜上场了,个人感觉这个非常有用的规则,解密了代码的()问题。 ST1 = Fwj(PM(1, 1),

20、 PM(1, 2), PM(2, 1), PM(2, 2) 计算方位角乍一看,挺晕,其实呢,首先不要被PM(?,?)、ST1所迷惑,个人感觉,这家伙就是a、b、c、d,好了,言归正传,x = Fwj(a, b, c, d),咦?,Fwj是个什么东东,嘿 嘿百度上是搜不到的,我找了一大遍,发现sub里有个Fwj陰用)二1F-j根攥坐标推聲方位角Function Fwj Ck1? yl,y2I Us Gc2 - xl) 0ThenFwj=FI /2I0ThenFwj=1.5 *PIElself Abs (y2 - yl) 0ThenFwj=0If-k1)0ThenFwj=FIElseFwj = A

21、tR(yZ - yl) / (nZ - xl)If- si)0 And- yl)0 Then.Fw i = FwiElsslf- xO Q T1 Fwj = FI - At.e (Fwj)Elself- kO And (y2 - yl) 0 And Cy2 - yl) 0 Tt Fwj = 2 * PI - Abi (Fwj )End IfEnd IEnd FurLCtiun二二二二GetA.GetH GetStaCoor I Elie jia-jLtoe toD ay toRadLED.LenLPIL Function Fwj(x1, y1, x2, y2) End Function谷歌翻译

22、:Functionf函数原来是自定义函数的意思呀!这里()里不再是空的了,转念一想,我们在表格里不是 经常使用一些简单的公式么?什么“二SUM ()求和” “DEGREES ()弧度转角度” “Pi ()” 都是有括号么?在代码规则里括号里有东西,估计也是直接把括号里的东西定义了,可以直 接使用。嘿嘿,我发现,在宏里定义了的函数可以在表格里找到1122l=f,iIam*、fvr il飞#我 我j (瓯工吕D5, E5)BCDE:1::1:i:乞D5.E5)45嘿嘿,转念一想,哈哈,这TMD以后方便了,自定义函数真是个好东西,网上应该有 很多很不错的自定义函数,大家搜索一下,一定有意想不到的收获

23、。可呵,个人感觉ExcelVBA 就是个大函数,我们只不过是把A1、B2之类的单元格使用代码替换了一下,附加个函数运 算就得了,哈哈!2.5又一个的小问题|燧用) |e tS tCoor?求线元內任意匠度L冋的坐标忠切线方f立甬sG &ue s-Le gzenir计算Sub GetS t aC a o:r (m e c ks CurveSest a A.e StaToi nt)Dim 4As DoubleDim I” LLj Ge tai As DoubleDim SI,亞,sJO,也 cl, K As DoubleDim i As Integer1 = s-ta. Mile 一 sec, S

24、TStiMilwLL = sec.EN.Sta. Mile - sec. ST_Sta. MileIf kb5 (LL) 0. 001 Thensi a = e&c . ET_Et:iElse求点的切线方位角及曲率With ESCst a. Ro = . ST_Sta. Rc + (. EN_Sta. R& - . ST_St a. Ro)1 / LLGetai = . 5T_Sta. a.十 Csta. Rc + . Sr_5ta. Eo) *1/2 s ta. a = Aug (G-etai )End With(11) = 0. 0694318442(1, 2= 0. 3300094782

25、f (t = 1 - f(.l, 2),- 1 - 1, 1)f lj = CL 1739274226 2 = 0.32E0725T74f辽3=琲2)0 4= t2, 1)51 = 0#52 = 0#aO - sec. ST_S ta. a.cO = sec. 5T_Sta. Rocl = sec. IN_S ta. RoH 二(cl - cO) # 1 * 1 / C2# * LL)For i = 1 Tc 4SI = SI + C2, ) 4 CostaJO + cO * 1 t (1, i) + H * El, i) * (1, i 亞=鸵 + g i.) * Sin(afl + cO

26、* 1 * f (1, i) + H *i) * f (1,ista. n = sec. ST_Sta. k + 1 * SIsia. y = sec. ST_St a. y + 1 * S2End If-End Sub傻了吧! Sub GetStaCoor(sec As CurveSec, sta As StaPoint)这是神马东东,嘿嘿, 只不过是把sec跟sta这两个代符直接在括号里定义了,没什么大不了的。又傻了吧! LL = sec.EN_Sta.Mile sec.ST_Sta.Mile狗日的这又是神马东西?嘿嘿, 不要着急,这些东西,你都见过的,只不过用“”给连接起来了,感觉应该是

27、一层一层的递归查找的意思,你看,先把sec使用以前定义好的CurveSec/基本曲线定义,这样sec里就有了定义基本曲线Tubl i cCurve SecST_Stn ks 占tai口intEN_Sta之类的,同理,就有了定文坡段Putlie Type Slop eehlile st As eT As sR AsAs sH Az i A.5 DouLlEnd. TypeSiA.E %冊1色J起点A.s D ouMe ikum 起传心Double,终垃切Double 1D oublsD oubleMile之类的。EN_E ta A.s :S t :aF o i 肮 t 卫迪Twje至此我们的小白

28、学习流程就告一段落了,还有两段代码,其中一段挺简单的,大家自己 探索吧!另外一段嘛,别问我,我是小白,我不懂!你懂得,嘿嘿I 罐用)ztsc生成推号Sub ZIlE C (. JDim工hbDim m, n, st, en As D oubleDim i. i. i 1. i2. k ks ht egerm = lnputEQK C1W输入直线段辅距:17路线坐标计算J股T)If m Then Endit二环ut驱“请输入曲线段槪眄“路线坐标计算“1 t riT iT mn iRange (Cells (4, “ Cells (10000 2).5elec tSelec ti orL. Sor

29、 t Kyl :二Eqtlee bl, Orderl :cendi匸肩】 Header: =xlGue 弓弓 _Ur der Cus turn : =1, hl ;mt chC:m2 已:二 F al 三已 Or i 已 nt at i cm: =xlT upT uB u 11 oni. S u r tM e tho !:=HlPlrLYirL Cells (4, 1). SelectEtliI Sub最后呢,感谢大家陪小白我一起学习,介绍一份陈师傅的教你如何通过Excel VBA编写测量坐标计算程序给大家。295188316/blog/1339492833网站2012.06.17测量空间工程

30、测量资源质检站中华钢结构论坛 http:/okok.org/forum/index.php仿真科技论坛 最 新 专 业 桥 梁 网 站 、 桥 梁 论 坛 ( 2012.02 验 证 更 新 ) 王中伟老师的测绘技术日志总索引 计算器中文测量程序 道路之星 行业规范标准分享网 便携测量公式查找手册 http:/115.eom/file/e7qk91v6#则量专家-2006-for-2006.01.03.chm下载链接【更新】纯Excel公式开发的施工测量数据计算表V1.4密码是AABBCC123456 51F【更新】在AutoCAD中用VBA按输入任意步长绘公路全能曲线(加入CAD命令) 51

31、F用 EXCEL 公式编写的计算后方交会法小工具 51FExcel全线坐标高程计算v1.积木法版+交点法版【2012.3.6】 纯 Excel 编辑的测量方面的一些小程序测量程序汇编(5800 计算器程序和对应的 Excel 程序) Excel 测量坐标计算程序(附带计算器程序)自编Excel测量计算程序-何足道道路中边桩坐标计算EXCEL程序(120424版)【王中伟老师编写】 道路中边桩坐标计算程序110610【王中伟老师编写】 立交匝道参数辅助计算程序(100111 版)【王中伟老师编写】“卵形曲线参数转换程序xls ”是卵型曲线转交点的大地坐标系与施工坐标系的计算(可计算直线,内附58

32、00程序代码) Excle全站仪实用放线程序(已改正) 电子表格Excel VBA测量程序分享-陈超 卡西欧CASIO fx-9750GII/9860坐标计算程序分享-陈超卡西欧计算器程序传输软件FA-124的使用方法595077/blog/1302101288 某桥梁交底材料.pdfExcel曲线坐标计算程序VBA 4.6 -测量程序-交点法、线元法、竖曲线等程序全新设计 Excel曲线坐标计算程序VBA 4.5 http:/wwwfffsky.eom/blog/post/QXZB_VBA_4.50.html#jtss-tqq最好大家自己也建个115网盘帐号,分享到自己的空间,这样源文件就多

33、了,下载就快点儿,没有帐号的请用下面的推广注册连接,帮我扩扩容,谢谢哈.计算器中文测量程序 道路之星 9750 的刷机fx-ES(MS)计算器论坛http:/fxesms.5d6d.eom/工程测量资源 9750 板块 测量空间 9750 板块卡西欧计算器程序传输软件FA-124的使用方法-G2M文件导入到计算器FA-124使用说明.pdffx-9750GII 视频教程 程序源fx9860程序源+使用说明.rarGII重现功能数据和表达式修正版.rar半支烟9860程序以及说明.rar9860蓝星2.5版程序文件.rarfx-cg20fx-9750g_new.rarEDIT_v11.51国外牛

34、人编写的记事本程序源码.rarCASIO_fx-9750GII_MJM2 面积计算程序.rarfx-CG20隧道超欠挖程序配套程序资料.zip fx9860g_实用测量程序配套资料.zipfx9750gii计算器_公路与铁路测量程序_源程序.zip程序使用说明公路与铁路测量程序_Q4V4程序操作说明.pdf公路与铁路测量程序_Q4V3程序操作说明.pdf公路与铁路测量程序_Q3V2程序操作说明.pdf公路与铁路测量程序_Q3V1程序操作说明.pdf程序使用视频Q2V9线元法连续路线匝道平曲线与竖曲线三维坐标正反算程序2.mpgQ2V8连续交点平曲线与竖曲线三维坐标正反算程序2.mpgQ2V9线元法连续路线匝道平曲线与竖曲线三维坐标正反算程序1.mpg计算器编程图书fx9860g_$用测量程序.pdfRDWORK(9750/ 9860 版)程序包 PDF (解保修正).rarfx9750gii计算器公路与铁路测量程序电子书籍.pdf CASIO_fx-CG20中文图形编程计算器电子手簿与隧道超欠挖程序(新增可打印功能).pdf计算器使用说明fx-9750GII、fx9860GII 基本操作.pptfx-9750GII、fx9860GII 详细中文说明书.pdffx-9750GII、fx9860GII 操作说明.doc再次感谢无私的神人们!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!