您好, 访客   登录/注册

Excel VBA在测量内业计算中的应用

来源:用户上传      作者: 苏伟

  摘要:Excel是大家很熟悉的办公软件,相信大家在工作中经常使用吧。在测量内业计算中, 计算一个角度的三角函数值,而角度的单位是60进制的, Excel本身是无法直接计算60进制的角度的三角函数!还有,在测量内业计算中,经常碰到导线的计算,如果手头没有平差计算程序就只有手工计算了,这时候我们可以用个程序来计算,直接把现场采集到的数据充入表格,就可以直接生成附合相关数据。其实,只要对 Excel进行一些挖掘,就可以发现Excel的功能本身有强大的二次开发功能。它强大的二次开发环境VBAIDE,用它来解决上面所提到的问题,就方便很多了。
  关键词:Excel VBA;测量内业计算
  在测量内业计算中,计算一个角度的三角函数值,而角度的单位是60进制的, Excel本身是无法直接计算60进制的角度的三角函数!还有,在测量内业计算中,经常碰到导线的计算,如果手头没有平差计算程序就只有手工计算了,这时候我们可以用个程序来计算,直接把现场采集到的数据充入表格,就可以直接生成附和相关数据。只要对 Excel进行一些挖掘,就可以发现Excel的功能本身有强大的二次开发功能。它强大的二次开发环境VBAIDE,用它来解决上面所提到的问题,就方便很多了。
  1 Excel直接计算60进制三角函数程序:
  打开Excel,按Alt+F11即进入VBAIDE。下面先定义一个函数,然后利用它来解决60进制的角度的三角函数计算问题。在菜单上依次点击[插入]->[模块],然后输入如下代码:
  
  通过上述编程,定义了一个名字叫DEG的函数,它的作用就是转换60进制的角度为Excel认识的弧度。编辑完后按Alt+Q即返回Excel,再在某一单元格输入sin(deg(A1))(A1既可以是单元格的值,也可以是输入的角度值),回车。如果出现#NAME?那就要设置一下安全设置。依次点[工具]->[宏]->[安全性],在安全级选项卡上选择“中”或者“低”,然后关闭后重新打开就可以了,以后只要是60进制的角度,就用它转换,非常方便。
  2 附和导线计算程序
  测量内业计算中,经常碰到导线的计算,如果手头没有平差计算程序就只有手工计算了,这时候就需要编个小程序来计算,下面是该程序的代码:
  
  值得注意的是,前面提到的DEG函数必须加进去。
  如果自己定义一个名字叫“计算”的按钮,指定此工具的宏为“单一附和导线计算”,那么,只要按下面的格式输入原始数据(斜体是输入的),点“计算”就可以得到计算结果了,所有的过程都是自动的,无须再手工填写。(如下例图)
  综上所述,Excel的功能是非常强大的,不但可以转换三角函数,也可以直接计算附和导线的相关数据,还可以在AutoCAD中直接与Excel通讯,比如一条三维多段线的所有结点的三维坐标直接导入到Excel,比在AutoCAD中用列表的方法要方便得多,如果有兴趣者,下次可以一起深入学习和探讨。


转载注明来源:https://www.xzbu.com/2/view-553998.htm