资源描述
小白自学ExcelVBA道路坐标高程计算程序流程
1声明
1.1 本人是个工作时间不长测量施工员。
1。2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的……
1.3 本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。其实俺还是懂点儿VB编程的(学校学过“="是赋值,if、while、end的意思,嘿嘿,还有画窗体图框,其他的就都还给老师了)。
1.4 谷歌、度娘,是 咱的好帮手。
1.5 仰望的存在,神一般的存在,无私的化身!
道路中边桩坐标计算程序120424.xls(王中伟"教授"QQ:595077)
曲线坐标计算程序VBA 4。6。xls(陈超"中铁”QQ:295188316)
陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标的人,要啃就啃硬骨头!就选~~~嘿嘿~~~王老师的程序吧!
1。6 道路中边桩坐标计算程序120424。xls代码获取。
王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了vba密码(个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐标计算程序120424。xls的密码贴出来(df750726),神人勿怪呀!
2 代码理解ing…
我们通过密码打开vba代码窗口,大家可以先把每个表格打开浏览一下代码,是不是感觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“lx”里,打开下,代码多吧,这就是咱们要肯的骨头。现在咱们冲呀!
2。1 第一段代码理解
貌似第一段代码是定义的意思“定义π值”、’定义桩号点”、“'定义坡段"、“’定义基本曲线”
① Public Const PI As Double = 3。14159265358979
谷歌翻译:PublicConst PI As Double
公共常量PI作为双精度浮点型
百度百科:双精度浮点数
双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1。7E—308~1。7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D"或“d"表示。
双精度浮点数科学记数法格式 :±aD±c或±ad±c
在一些现代的被优化用来进行高速数学计算的处理器上双精度型实际上比单精度的快。所有超出人类经验的数学函数,如sin( ),cos( ) ,和sqrt( )均返回双精度的值。当你需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。
个人理解:PI是储存数据的符号,把3。14159265358979赋值储存进去,公共常量,意思是大家都可以调用的固定值,双精度浮点型应该是规定PI能储存的数据类型(什么整数啦、日期啦、小数啦、文字啦之类的),还有储存量(估计双精度比单精度储存的多)之类的规定。
②Public Type StaPoint……End Type
谷歌翻译: Public Type StaPoint(联系上下文“定义桩号点”应该是StakePoint)
公共类型桩号点
百度文库:VB中Type语句的功能及用法
Type 语句只能在模块级使用.使用 Type 语句声明了一个用户自定义类型后,就可以在该声明范围内的任 何位置声明该类型的变量。可以使用 Dim、Private、Public、ReDim 或 Static 来声明用户自定义类型的变量。
在标准模块中,用户自定义类型按缺省设置是公用的。可以使用 Private 关键字来改变其可见性.而在类 模块中,用户自定义类型只能是私有的,且使用 Public 关键字也不能改变其可见性. 在 Type.。.End Type 块中不允许使用行号和行标签。
用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组成。
个人理解:①号句定义了常量的代码(经常用π值,就把3。1415固定到PI里,方便调用).②使用Type语句分段(StaPoint/桩号点、Slope/坡段、CurveSec/基本曲线)、批量自定义变量的代码,这几段都是定义的双精度,之所以分段,联系下文,估计是方便经常调用.
值得注意的是 CurveSec/基本曲线定义这一段,对于ST_Sta/起点、EN_Sta、/终点的定义,调用了前面StaPoint/桩号点的定义,两句话,直接把基本曲线所需要使用参数代号都定义了,呵呵,这就是Type语句吧,可以相互调用,方便定义!
2。2咦??????这个分割线是怎么回事?
为什么会跟下一段的Sub Auto_Open()。..。。End Sub分开呢?
点一下SubAuto_Open()。。。.。End Sub右上角的“声明”就变成“Auto_Open",声明什么意思?Auto_Open又是什么意思?点击声明的下拉列表,好家伙,全是程序(sub)代号,应该是起到一个引所目录的作用吧!触发某段代码运行。。。.。
对于上面的Sub Auto_Open()...。.。End Sub代码的功能的功能聪明的我已经猜到,是打开Excel表格,就会跳到标签为“欢迎”的页面.
③Sub……. End Sub
谷歌翻译: Sub……。 End Sub(联系上下文“定义桩号点”应该是StakePoint)
程序结束程序
百度搜索:Sub……。 End Sub语句的功能及用法
语法
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Sub 语句的语法包含以下部分
Public 表示 Sub 过程可被所有 Script 中的所有其他过程访问.
Private 表示 Sub 过程只可被声明该过程的 Script 中的其他过程访问.
Name Sub 的名称,遵循标准变量命名约定。
Arglist 代表在调用时要传递给 Sub 过程的参数的变量列表。用逗号隔开多个变量。
Statements 在 Sub 过程主体内所执行的任何语句组。
用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组成.
在 Sub 过程中使用的变量分为两类:一类是在过程内显式声明的,另一类则不是。在过程内显式声明的变量(使用 Dim 或等效方法)总是局部变量。对于那些没有在过程中显式声明的变量也是局部的,除非在该过程外更高级别的位置显式地声明它们.
Sub 过程是包含在 Sub 语句和 End Sub 语句中的一系列 Visual Basic 语句。每次调用过程时都执行过程中的语句,从 Sub 语句后的第一个可执行语句开始,到遇到的第一个 End Sub、Exit Sub 或 Return 语句结束。
个人理解:Sub语句中sub作为开头,是让计算机一阅读代码就知道,你执行的是一个程序,而不是默认的定义一些数据,当然要先定义,才能执行,前面的①②代码都是公共定义,是计算机最先执行的,sub里有自己小范围的dim定义。据观察给sub后加名字,名字最后必须是(),至于为什么要加(),别问我,我是小白,我不知道!!!但启动调用程序时,就直接用写名字就行了。
2。3 一切反动派都是纸老虎
丫丫了个呸的!这一层一层的代码都是什么呀!太祖有云,一切反动派都是纸老虎!上去戳他去!行动听指挥,一步一步来!
④Dim zy, i, j As Integer
谷歌也没搜到Dim是个啥玩意,就当成定义的意思了,定义zy, i, j为整数类型(Integer),后面还有个定义成字符型(String)的,就是可以储存字母之类的.
⑤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 Double是定义3×5=15个PM(?, ?)数组元素,双精度的,可以使用这十五个PM(?, ?)符号进行储存,注意第二个问号前有个空格.
⑥With Sheets(”平面资料")……End With
百度知道:VBA中的WITH 语句用法及含义
通俗点讲with的作用就是简化代码,让代码简洁易懂
让你不需要输入重复的内容
例如:
With [A1]
.RowHeight = 10
。ColumnWidth = 15
End With
相当于
[A1]。RowHeight = 10
[A1]。ColumnWidth = 15
省去了输入很多[A1]
也就是说with中以 . 开头的就相当于
WITH后的对象 。什么什么什么
⑦Rows(”6:500")。ClearContents
谷歌翻译: Rows("6:500”)。ClearContents
行清除内容
百度知道:excel的vb中Rows( 6:500 )。ClearContents是什么意思?
将第6行到第500行的内容清除。
谷歌翻译: Worksheets(”Sheet1")。Range("A1:G37")。ClearContents
工作表 范围 清除内容
2。4 探索与发现
其实就单纯的表格数据计算,所使用的VBA编程知识,是非常非常少的,换个VB编程高手,来看咱们工程坐标计算所使用的代码规则,简直就是加减乘除而已.事实上也是如此,你只要耐心的跟同样小白的我,一起花十几分钟看完这篇流程,你已经有能力看懂88%的代码,并且可以简单的修改应用。传说ExcelVBA可以直接接入CAD….这就要等大家去探索发现了,嘿嘿!!废话少说,还有几段小代码规则,大家再来看看吧!
⑧If 。Cells(i + 2, 3) = ”” Then…。 End If
如果你连if、while、for这些条件循环语句都不懂的话,那你真比我还小白了,哈哈!!!
这段代码并不难,之所以拿出来研究,还是为了消除大家的畏惧心理,嘿嘿!!
百度搜索:这个语句可判断 If Cells(j, 2) ="” Then 这个单元格“Cells(j, 2)”是空白单元格吗?
如果cells(j,2)为空的话,这时候下一步,这里的双引号是空的意思.
下面,好菜上场了,个人感觉这个非常有用的规则,解密了③代码的()问题。
⑨ST1 = Fwj(PM(1, 1), PM(1, 2), PM(2, 1), PM(2, 2)) 计算方位角
乍一看,挺晕,其实呢,首先不要被PM(?, ?)、ST1所迷惑,个人感觉,这家伙就是a、b、c、d,好了,言归正传,x = Fwj(a, b, c, d),咦?,Fwj是个什么东东,嘿嘿百度上是搜不到的,我找了一大遍,发现sub里有个Fwj
⑩Function Fwj(x1, y1, x2, y2)…. End Function
谷歌翻译:Function→函数
原来是自定义函数的意思呀!这里()里不再是空的了,转念一想,我们在表格里不是经常使用一些简单的公式么?什么“=SUM()求和”、“DEGREES()弧度转角度"、“Pi()"都是有括号么?在代码规则里括号里有东西,估计也是直接把括号里的东西定义了,可以直接使用。
嘿嘿,我发现,在宏里定义了的函数可以在表格里找到
嘿嘿,转念一想,哈哈,这TMD以后方便了,自定义函数真是个好东西,网上应该有很多很不错的自定义函数,大家搜索一下,一定有意想不到的收获。呵呵,个人感觉ExcelVBA就是个大函数,我们只不过是把A1、B2之类的单元格使用代码替换了一下,附加个函数运算就得了,哈哈!
2。5 又一个的小问题
傻了吧!Sub GetStaCoor(sec As CurveSec, sta As StaPoint)这是神马东东,嘿嘿,只不过是把sec跟sta这两个代符直接在括号里定义了,没什么大不了的.
又傻了吧!LL = sec。EN_Sta.Mile — sec.ST_Sta。Mile狗日的这又是神马东西?嘿嘿,不要着急,这些东西,你都见过的,只不过用“。"给连接起来了,感觉应该是一层一层的递归查找的意思,你看,先把sec使用以前定义好的CurveSec/基本曲线定义,这样sec里就有了EN_Sta之类的,同理,就有了Mile之类的。
至此我们的小白学习流程就告一段落了,还有两段代码,其中一段挺简单的,大家自己探索吧!另外一段嘛,别问我,我是小白,我不懂!!!!你懂得,嘿嘿…
最后呢,感谢大家陪小白我一起学习,介绍一份陈师傅的《教你如何通过Excel VBA编写测量坐标计算程序》给大家。
http://user。qzone.qq。com/295188316/blog/1339492833
副本人搜索珍藏的施工测量资源链接
网站-—-—-—-—--——-———--—-—-—-—-———--—-—-——-——-——-———————-——-—-—-————-—---—2012。06。17
测量空间
工程测量资源 http://www。fffsky。com/
质检站 http://www.jtbzjz。net/rwqss/public/findSubject。shtml?subjectid=203
中华钢结构论坛 http://okok。org/forum/index.php
仿真科技论坛 http://forum。
最新专业桥梁网站、桥梁论坛(2012。02验证更新)http://user。qzone。qq。com/740311548/blog/1332736417
王中伟老师的测绘技术日志总索引http://user。qzone.qq。com/595077/blog/1300427570
计算器中文测量程序 道路之星 http://roadstar。ys168。com/
行业规范标准分享网
便携测量公式查找手册 http://
下载链接-————-—————-—-——-———--——--—-—————-————-—--——-———-————————-——-——-——
【更新】纯Excel公式开发的施工测量数据计算表V1。4 密码是AABBCC123456
http://cehui。w107。
【更新】在AutoCAD中用VBA按输入任意步长绘公路全能曲线(加入CAD命令)
http://cehui.w107。
用EXCEL公式编写的计算后方交会法小工具
http://cehui。w107。leoboard。com/down_view.asp?id=1185&author=%u534A%u8FB9%u4E66%u751F
Excel全线坐标高程计算v1。积木法版+交点法版【2012。3。6】
http://cehui。
纯Excel编辑的测量方面的一些小程序
http://cehui。
测量程序汇编(5800计算器程序和对应的Excel程序)
http://cehui.w107。
Excel测量坐标计算程序(附带计算器程序)
http://cehui。w107。
自编Excel测量计算程序—何足道
http://cehui。w107。
道路中边桩坐标计算EXCEL程序(120424版)【王中伟老师编写】
http://user.qzone.qq。com/595077/blog/1335541955
道路中边桩坐标计算程序110610【王中伟老师编写】
http://cehui。w107。leoboard。com/down_view。asp?id=1384&author=qq740311548
立交匝道参数辅助计算程序(100111版)【王中伟老师编写】
http://cehui.w107.leoboard。com/down_view。asp?id=1383&author=qq740311548
http://user。qzone。
“卵形曲线参数转换程序。xls"是卵型曲线转交点的
大地坐标系与施工坐标系的计算(可计算直线,内附5800程序代码)
http://cehui。w107。leoboard。com/down_view。asp?id=1362&author=qiufei
Excle全站仪实用放线程序(已改正)
http://cehui。w107。
电子表格Excel VBA测量程序分享—-陈超
http://user。qzone.qq。com/295188316/blog/1329102981
卡西欧CASIO fx—9750GII/9860坐标计算程序分享——陈超
http://user。qzone。
卡西欧计算器程序传输软件FA—124的使用方法
http://user。qzone。qq。com/595077/blog/1302101288
http://115。com/file/c2pif4fa#
某桥梁交底材料.pdf
http://115。com/file/e6gc3p7u#轻松工程测量系统2。051版.rar
[Excel]曲线坐标计算程序VBA 4.6 — 测量程序 - 交点法、线元法、竖曲线等程序全新设计
http://www。fffsky。com/blog/post/QXZB_VBA_4。6。html
[Excel]曲线坐标计算程序VBA 4.5
http://www.fffsky。com/blog/post/QXZB_VBA_4。50.html#jtss-tqq
最好大家自己也建个115网盘帐号,分享到自己的空间,这样源文件就多了,下载就快点儿,没有帐号的请用下面的推广注册连接,帮我扩扩容,谢谢哈。。。
http://115。com/invite/318335
计算器中文测量程序 道路之星 http://roadstar.ys168。com/
9750的刷机 http://user。qzone。qq。com/595077/blog/1321170959
fx-ES(MS)计算器论坛 http://
工程测量资源 9750板块 http://www。fffsky。com/blog/catalog。asp?cate=6
测量空间9750板块 http://cehui。w107。leoboard。com/article_list。asp?c_id=48&s_id=255
卡西欧计算器程序传输软件FA—124的使用方法—G2M文件导入到计算器 http://user。qzone.qq。com/595077/blog/1302101288
http://115。com/file/c29xv7bt#
FA-124使用说明.pdf
fx—9750GII 视频教程http://www。casio。com。cn/edu/web/100minutes。html
程序源-——--————--—--——-—-——--—————--—-—-——-—--————-——
http://115。com/file/c2943e54#
fx9860程序源+使用说明.rar
http://
GII重现功能数据和表达式修正版。rar
半支烟9860程序以及说明。rar
http://
9860蓝星2。5版程序文件。rar
http://115。com/file/dpqlr113#
fx—cg20fx-9750g_new。rar
http://115。com/file/bepltell#
EDIT_v1[1].51国外牛人编写的记事本程序源码.rar
http://115。com/file/ans9og88#
CASIO官网发布的覃辉的9750、9860的程序。rar
CASIO_fx—9750GII_MJM2面积计算程序。rar
http://115。com/file/bht1pxlh#
fx—CG20隧道超欠挖程序配套程序资料。zip
http://115。com/file/bht1ppnf#
fx9860g_实用测量程序_配套资料.zip
http://
fx9750gii计算器_公路与铁路测量程序_源程序.zip
程序使用说明——————-—-————-—--———--——————-—-————--—-——
http://115。com/file/e6gclu36#
公路与铁路测量程序__Q4V4程序操作说明.pdf
http://115。com/file/clyixlgn#
公路与铁路测量程序__Q4V3程序操作说明。pdf
http://
公路与铁路测量程序__Q3V2程序操作说明.pdf
公路与铁路测量程序__Q3V1程序操作说明。pdf
程序使用视频---——-—-———-—-—--—-————-—---—————-----————
http://115。com/file/e6gclgn8#
Q2V9线元法连续路线匝道平曲线与竖曲线三维坐标正反算程序2.mpg
http://115。com/file/e6gclmb6#
Q2V8连续交点平曲线与竖曲线三维坐标正反算程序2。mpg
http://115。com/file/bht1sfyg#
Q2V9线元法连续路线匝道平曲线与竖曲线三维坐标正反算程序1.mpg
计算器编程图书——-——————-—-——-———-———-—-——----————-—-—-—
fx9860g_实用测量程序。pdf
http://115。com/file/ans00myu#
RDWORK(9750/9860版)程序包PDF(解保修正).rar
http://115。com/file/dpqlpsh0#
fx—9860G基于串列的偏携编程数字化计算原理与方法.rar
fx9750gii计算器_公路与铁路测量程序_电子书籍。pdf
http://
CASIO_fx-CG20中文图形编程计算器电子手簿与隧道超欠挖程序(新增可打印功能)。pdf
计算器使用说明———---——----—————--—-———------—-—-——--—
http://
fx-9750GII、fx9860GII基本操作。ppt
http://115。com/file/e6gclbdv#
fx-9750GII、fx9860GII详细中文说明书.pdf
http://
fx—9750GII、fx9860GII操作说明.doc
再次感谢无私的神人们!!!!!!
展开阅读全文