公路工程测量基于微软EXCEL平台VBA语言的开发应用


2012 年 第 33 期 SCIENCE & TECHNOLOGY INFORMATION ○ 公路与管理 ○ 科技信息 公路工程测量基于微软 EXCEL 平台 VBA 语言的开发应用 黄 攀 (福建省第二公路工程有限公司 福建 福州 350007) 【摘 要】基于微软办公系统 EXCEL 平台的寄生语言 Visual Basic For Application(VBA) 的强大数值计算功能,可开发各种有复杂功能要求 的应用程序,通过在公路测量上的应用,使工作更方便快捷。 【关键词】Office ;EXCEL ;VBA 语言;公路应用;开发 0 前言 微 软 办 公 系 统 的 EXCEL 自 动 电 子 表 格 有 很 强 大 的 编 辑 计 算 功 能,能提供一个数据管理 界 面 ,其 内 部 集 成 的 函 数 可 以 对 其 数 据 进 行 管理和简单的分析,从而 满 足 了 通 常 办 公 处 理 表 格 数 据 要 求 ,很 方 便 适用。 但对于公路工程测量的坐标计算和坐标处理判定来说 ,需要有 一个严密的数值推导计算 过 程 ,利 用 其 内 部 函 数 的 话 ,解 决 起 来 比 较 复杂,运行速度慢,容易出错。 同时其函数公式直接显示于 EXCEL 表 格外层,容易被修改,从而使其数据发生错误,同时也很难检查到公式 错误的地方,可靠性底。 利用 EXCEL 平台寄生的 VBA 语言,就能很容 易的解决这个问题。 建立模块级宏指令。 提供建立类模块的功能。 具有 完 善 的 数 据 访 问 与 管 理 能 力 ,可 通 过 DAO (数 据 访 问 对 象 ) 对 Access 数据库或其它外部数据库进行访问和管理。 1.6 能 够 使 用 SQL 语 句 检 索 数 据 , 与 RDO ( 远 程 数 据 对 象 ) 结 合 起 来,可建立 C/S (客户机 / 服务机)级的数据通信。 1.7 能够使用 Win32 API 提供的功能, 建立应用程序与 操 作 系 统 间 的通信。 1.3 1.4 1.5 2 公路工程测量开发实例 1 VBA 语言介绍 Visual Basic For Application (VBA )是让微软开发出来的应用程序 如 EXCEL 等共享通用的自动化语言。 可以认为 VBA 是非常流行的应 用程序开发语言 VASUAL BASIC 的子集,实际上 VBA 是“寄生于”VB 应用程序的版本,让 EXCEL 自动化。 VBA 具有很强的开发能力,其主 要功能包括: 1.1 创建对话框及其它界面。 1.2 创建工具栏。 表1 基于 EXCEL VBA 语言编写公路坐标计算程序,优点是在 计 算 数 据量很大的情况下运行 速 度 快 ,能 对 原 始 数 据 进 行 直 接 的 管 理 ,可 对 计算成果进行排版,能 很 容 易 的 实 现 原 始 数 据 、计 算 成 果 数 量 及 相 关 图表的打印,实现多功能集成,充分提高了工作效率。 步骤如下: 2.1 在 EXCEL 文件中建立一个基础数据工作表格即曲线要素表 ,其 形式可以是: 1 )通常设计图纸的曲线要素表(如表 1 )。 2 )曲线元要素表(如表 2 )。 两种原始数据表所对应的计算模型不一样,各自特点是,设计图纸 曲线要素表很直观的反应整条线路的曲线要素 ,对 应的程序模型为不对称缓和曲线的模型方案。 以曲 线元要素为基础数据表只反应了每条曲线元的情 况,并不能很直观的反应路线中各曲线之间的关系, 但是其曲线元计算模型很简单灵活, 可很好运用于 计算机中。 EXCEL 基础数据表格的共同优点是直观 简单,可直接在工作表中修改,维护起来非常容易。 2.2 建立数据计算成果工作表 建立一个计算成果工作表,表格的格式可以根 据 需 要 设 计 ,其 内 容 可 包 含 桩 号 、中 桩 、左 右 边 桩 、 即 时 方 位 角 、偏 角 法 参 数 、切 线 支 距 法 xy 坐 标 等 。 成 果 表 中 建 立 三 个 控 件 ,一 个 是 计 算 ,一 个 是 清 除 横条,一个是还原横条。 控件是操作内部计算的控 制键,可根据需要设置更多功能的控件。 2.3 编写 VBA 模块程序 以曲线元为例设计一个程序模块 ,具体做法是 运 行 EXCEL 工 具 菜 单 的 宏 子 菜 单 中 Visual Basic 编辑器。 (如表 3 ) 建立一个程序模块,在模块里编制自己设计的 程序,程序代码如下: 表2 Sub js() Dim g, i, d, e, a, b, c, j, k, l As Double Dim h, f, x, y, r, pi As Double Dim v, ii, iii As Integer Range(A4:h2005).Select Selection.ClearContents pi = 3.1415926: ii = 0 j = Int(Worksheets( 原始数据 ).Cells(5, 2) + 1) k = Worksheets( 原始数据 ).Cells(2, 5) l = Worksheets( 原始数据 ).Cells(2, 7) For iii = 0 To 2001 If j > Worksheets( 原 始 数 据 ).Cells(5 + ii, 3) Then ii = ii + 1 g = Worksheets( 原始数据 ).Cells(5 + ii, 4) 836 科技信息 ○ 公路与管理 ○ SCIENCE & TECHNOLOGY INFORMATION 2012 年 第 33 期 表3 表4 Next n Cells (4 + iii, 8) = Format (r, 0.000000) x = g + h * (Cos(c * pi / 180) + 4

相关文档

EXCEL VBA编程在公路工程计量支付中的应用
基于VBA的Excel水利工程测量程序的开发应用
Excel VBA在工程测量中的应用
电脑版