如何通过Excel VBA编写测量坐标计算程序.docx
《如何通过Excel VBA编写测量坐标计算程序.docx》由会员分享,可在线阅读,更多相关《如何通过Excel VBA编写测量坐标计算程序.docx(11页珍藏版)》请在冰豆网上搜索。
如何通过ExcelVBA编写测量坐标计算程序
教你如何通过ExcelVBA编写测量坐标计算程序
(入门篇)
摘要:
认识VBA、理解VBA,并利用OfficeExcelVBA编写测量坐标计算程序。
关键词:
ExcelVBA程序坐标编写
了解:
VBA是什么?
简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用Excel的宏语言来使Excel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——VisualBasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发语言VisualBasic的子集,事实上VBA是VB应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:
选择ExcelVBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对ExcelVBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
ExcelVBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过ExcelVBA编写设计出称心如意的测量程序。
目标:
基于ExcelVBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过ExcelVBA自行完成坐标计算程序设计。
认识:
学习VBA到底需要什么基础和了解些什么?
学习VBA需要认识英文字母、一般的单词(如:
函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
在VBA中需要了解VBA的过程、变量、属性、方法、事件、语句等。
ExcelVBA程序可以分为“录制宏、自定义函数”,由于录制宏编写计算类程序它限制了计算涵式过程,而无法达到自定义数据直接运算的目的,所以大家可以通过按钮式点击进行自定义函数过程(还可以通过窗体定义过程)。
基本常识:
1、类型:
常用类型分为Integer(整型)、Single(单精度型)、Double(双精度型)、String(字符串型)、Variant(数字)、Variant(字符)。
2、变量:
Dim变量名As数据类型。
例:
DimAAsDouble
定义变量除了可以使用Dim语句外,比较常的还有:
static语句,Private语句,Public语句。
3、常量:
Const常量名As数据类型=常量的值。
例:
ConstPI=3.1415926535898
常量声明后不可对它再进行赋值。
4、If语句:
If逻辑表达式Then┆IfQ<0Then
语句块1┆Q=-1
Else┆Else
语句块2┆Q=1
EndIf┆EndIf
5、Do循环语句:
DoWihle循环条件┆DoWhileCells(j,1)<>Empty
语句块1┆X=N+(Cells(j,1)-D)*Cos(F)
[ExitDo]┆Y=E+(Cells(j,1)-D)*Sin(F)
语句块2┆j=j+1
Loop┆Loop
6、调用单元格数值:
WithSheets("单元格名称")┆WithSheets("坐标计算")
N=.Cells(行,列)┆N=.Cells(3,2)
E=.Cells(行,列)┆E=.Cells(4,2)
D=.Cells(行,列)┆D=.Cells(5,2)
F=.Cells(行,列)┆F=.Cells(6,2)
EndWith┆EndWith
说明:
这里的.Cells(行,列)表示调用Sheets("坐标计算")单元格中指定数值。
7、MsgBox事件语句:
PrivateSubWorkbook_Open()┆PrivateSubWorkbook_Open()
MsgBox"提示语句"┆MsgBox"欢迎使用直线坐标计算程序!
"
EndSub┆EndSub
主题:
通过以上认识相信大家对VBA编程稍有认识与了解,现在将进行测量坐标计算程序设计。
给大家讲解的是“直线坐标中桩计算”的程序如何编写与运算。
思路:
根据单元格输入的已知数据并由With过程调用,建立Do循环计算模式自动填充待求点单元格坐标。
直线坐标计算原理:
如下图所示,已知直线的起点坐标O(xo,yo)、起点切线方位角ao、直线长度L。
直线的止点坐标Z(xz,yz)、止点方位角az计算如下:
已知计算数据:
输入直线要素
起点坐标xo
3378605.445
起点坐标yo
453648.704
起点桩号O
7586.707
计算方位角ao
98.565562
程序操作步骤:
1、设置表格框架(可以根据自己的要求设计),图示如下:
2、在菜单栏上面点击右键弹出下拉式对话框选中“VisualBasic”。
3、调用后的VisualBasic菜单栏显示如下。
4、插入命令按钮(按钮主要用于鼠标点击时触发函数运行)。
5、插入命令按钮后样式,在上面点击右键→命令按钮对象→编辑→输入“坐标计算”名称(可以根据自己要求输入)。
同样方法添加“数据清除”按钮。
6、在“坐标计算”按钮上面点击右键→查看代码,即可进入代码编辑区域。
同样方法编辑“数据清除”按钮代码。
7、代码输入区域,在蓝色线条位置粘贴“VBA主要源码”代码然后点击左上角Excel图标即可返回Excel电子表格界面。
(这里还可以在VBAProject上面点击右键→插入模块→将代码粘贴到模块中通过路径指引,但是在这里就直接将代码粘贴在按钮内部减少了添加模块的繁琐)。
VBA主要源码:
PrivateSubCommandButton1_Click()按钮下粘贴以下代码:
VBA源码说明:
粘贴后的代码区域显示:
8、返回Excel表格后点击顶部按钮“退出设计模式”即可正常点击按钮。
9、在单元格中输入已知数据。
10、点击“坐标计算”按钮即可计算出以下坐标。
程序源码文件下载地址:
结论:
通过实践证明,在工作中知道已知测量数学模型并结合编程技术写一些程序对常用的数据处理能够高效的解决实际工作中出现的问题,从而使工作效率得以提高。
在这里或许有朋友要问为什么不编写复杂的曲线坐标计算程序?
其实编写什么都一样,教你的只是一种方法,一种思路,如果你用心去学就算告诉你一个过程你就会懂里面的意思。
所以功夫还得靠大家自己多加练习才能迈入编程的正常轨道。
本篇文章来源于:
工程测量资源原文链接:
本篇文章来源于:
工程测量资源原文链接: