




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教你如何通过Excel VBA编写测量坐标计算程序 发布日期:2013-01-11 来源:网络 作者:未知 浏览次数:1704摘 要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。关键词:Excel VBA 程序 坐标 编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。可以用Excel的宏语言来使Excel自动化运行等Microsoft
2、让它开发出来的应用程序共享一种通用的自动化语言Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是VB应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。如果你已经了解VB会发现学习VBA非常快。相应的学完VBA会给学习VB打下坚实的基础。理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。它运用范围广,计算速度快,计算精度高,合理化显示等。或许很多测量人员对Excel V
3、BA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。认识:学习VBA到底需要什么基础和了解些什么?学习V
4、BA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。在VBA中需要了解VBA的过程、变量、属性、方法、事件、语句等。Excel VBA程序可以分为“录制宏、自定义函数”,由于录制宏编写计算类程序它限制了计算涵式过程,而无法达到自定义数据直接运算的目的,所以大家可以通过按钮式点击进行自定义函数过程(还可以通过窗体定义过程)。基本常识: 1、类型:常用类型分为Integer(整型)、Single (单精度型)、Double (双精度型)、String(字符串型)、Variant(数字)、Variant
5、(字符)。 2、变量:Dim 变量名 As 数据类型。例:Dim A As Double定义变量除了可以使用Dim语句外,比较常的还有:static语句,Private语句,Public语句。 3、常量:Const 常量名 As 数据类型 常量的值。例:Const PI =3.1415926535898常量声明后不可对它再进行赋值。 4、If语句:If 逻辑表达式
6、0;Then If Q<0 Then 语句块1 Q=-1Else
7、 Else 语句块2
8、0; Q=1 End If End If 5、Do循环语句:Do Wihle 循环条件 Do
9、0;While Cells(j, 1) <> Empty 语句块1 X = N + (Cells(j, 1) - D) * Cos(F) E
10、xit Do Y = E + (Cells(j, 1) - D) * Sin(F) 语句块2
11、160; j = j + 1 Loop Loop 6、调用单元格数值:With Sheets("单元格名称") Wit
12、h Sheets("坐标计算") N = .Cells(行, 列) N = .Cells(3, 2) E = .Cells(行, 列)
13、160; E = .Cells(4, 2) D = .Cells(行, 列) D = .Cells(5, 2) F = .Cells(行, 列)
14、0; F = .Cells(6, 2) End With End With说明:这里的.Cells(行, 列)表示调用Sheets("坐标计算")单元格中指定数值。&
15、#160; 7、MsgBox事件语句:Private Sub Workbook_Open() Private Sub Workbook_Open() MsgBox "提示语句" MsgBox "欢迎使用直线坐标计算程序!"End Sub
16、0; End Sub 主题:通过以上认识相信大家对VBA编程稍有认识与了解,现在将进行测量坐标计算程序设计。给大家讲解的是“直线坐标中桩计算”的程序如何编写与运算。 思路:根据单元格输入的已知数据并由With过程调用,建立Do循环计算模式自动填充待求点单元格坐标。 准备:本表需将安全级别设置为“低”,否则运行时点击计算按钮没有
17、反映。 Office Excel 设置方法如下: Excel 2003版:工具>>>宏>>>安全性>>>选择较低的安全级别>>>重新打开文件即可运行。 Excel 2007版:Office按钮>>>Excel选项>>>信任中心>>>信任中心设置>>>宏设置>>>启用所有宏。
18、60;版本:程序测试演示版本 Microsoft Office Excel 2003直线坐标计算原理:如下图所示,已知直线的起点坐标 、起点切线方位角ao、直线长度L。 直线的止点坐标、止点方位角az计算如下: 已知计算数据:输入直线要素起点坐标xo3378605.445起点坐标yo453648.704起点桩号O7586.707计算方位角ao98.565562程序操作步骤:1、设置表格框架(可以根据自己的要求设计),图示如下: 2、在菜单栏上面点击右键弹出下拉式对话框选中“Visual Basic”。 3、调用后的Visu
19、al Basic菜单栏显示如下。 4、插入命令按钮(按钮主要用于鼠标点击时触发函数运行)。 5、插入命令按钮后样式,在上面点击右键命令按钮 对象编辑输入“坐标计算”名称(可以根据自己要求输入)。同样方法添加“数据清除”按钮。 6、在“坐标计算”按钮上面点击右键查看代码,即可进入代码编辑区域。同样方法编辑“数据清除”按钮代码。 7、代码输入区域,在蓝色线条位置粘贴“VBA主要源码”代码然后点击左上角Excel图标即可返回Excel电子表格界面。(这里还可以在VBAProject上面点击右键插入模块将代码粘贴到模块中通过路径指引,但是在这
20、里就直接将代码粘贴在按钮内部减少了添加模块的繁琐)。 VBA主要源码: Option Explicit '显式声明模块中的所有变量 Private Sub CommandButton1_Click()'按钮下粘贴以下代码:Dim j As Integer '
21、0;
22、0; Dim Ai, Bi, Ci, Di, Ei, Fi, Gi, Hi As Double ' &
23、#160; Dim N, E, D, X, Y, F As
24、60;Double '
25、0; 定义变量Const Pi = 3.14159265358979 ' &
26、#160; &
27、#160; With Sheets("坐标计算") If Trim(.Cells(3, 2) = "" Then MsgBox "请输入“起点坐标X”!", vbInformation, "提示": Exit Sub '
28、;If Trim(.Cells(4, 2) = "" Then MsgBox "请输入“起点坐标Y”!", vbInformation, "提示": Exit Sub ' If Trim(.Cells(5, 2) = ""
29、 Then MsgBox "请输入“起点桩号K”!", vbInformation, "提示": Exit Sub ' 检测数据 If Trim(.Cells(6, 2) = "" Then MsgBox "请输入“起点方位角F”!"
30、, vbInformation, "提示": Exit Sub ' N = .Cells(3, 2) '
31、 E = .Cells(4, 2) '
32、 D = .Cells(5, 2) ' 调用已知数据 F = .Cells(6, 2)
33、;' Gi = Int(.Cells(5, 2) + 10) / 10) * 10 '
34、160; Hi = .Cells(5, 2) + .Cells(7, 2) ' Fi = Abs(F) '
35、; Ai = Int(Fi) '
36、160; Bi = (Fi - Ai) * 100 ' &
37、#160; Bi = Int(Bi) '
38、0; Ci = (Fi - Ai) * 10000 - 100 * Bi ' 六十进制转换为十进制 Di = Bi + Ci
39、/ 60 ' Ei = Ai + Di / 60 '
40、 If F < 0 Then ' &
41、#160; F = -Ei '
42、60; Else '
43、 F = Ei '
44、60; End If '
45、; F = F / 180 * Pi End With j = 9 Do While Cells(j, 1) <> Empty '
46、0; X = N + (Cells(j, 1) - D) * Cos(F) '
47、0; Y = E + (Cells(j, 1) - D) * Sin(F) ' 坐标计算核心 Cells(j, 2) = Round(X, 3) '
48、160; Cells(j, 3) = Round(Y, 3) '
49、 j = j + 1 ' Loop
50、0;' End Sub '
51、 Private Sub CommandButton2_Click()'按钮下粘贴以下代码:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级产品经理面试题详解与备考指南
- 2025年外语能力等级测试全真模拟试题集
- 2025年中级软件开发工程师考试题库
- 2025年农村经济发展战略规划与实施案例分析题库
- 农艺工安全规范考核试卷及答案
- 气管切开处皮肤护理
- 2025年秋季XX幼儿园园务工作计划
- 电力工程机械设备投入措施
- 体育设施招标特点与应对措施
- 缝纫机操作知识培训内容课件
- 实验室家具生产、安装进度计划表
- 干细胞健康推广策划方案
- 医院心肺复苏培训总结
- 智能制造生产线课程设计
- 2024年中国东方航空集团招聘笔试参考题库含答案解析
- 领导干部任前谈话记录表
- 光对绿豆发芽影响试验报告
- 土力学与地基基础(课件)
- 公众责任保险附加电梯责任保险
- 儿童智能玩具调研报告
- 广州知识产权法院民事判决书
评论
0/150
提交评论