浅谈基于Excel的道路工程计算技术论文
浅谈基于Excel的道路工程计算技术论文
道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
学习啦在线学习网 ①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
学习啦在线学习网 ④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
学习啦在线学习网 下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
学习啦在线学习网 2.1 高级内置函数应用:数据管理、数据联动检索使用
学习啦在线学习网 2.1.1 VLOOKUP 函数
学习啦在线学习网 本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
学习啦在线学习网 VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
查找目标:VLOOKUP (B10, 中桩坐标! $A
浅谈基于Excel的道路工程计算技术论文
学习啦在线学习网 道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
学习啦在线学习网 ③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
学习啦在线学习网 ④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
学习啦在线学习网 2.1 高级内置函数应用:数据管理、数据联动检索使用
学习啦在线学习网 2.1.1 VLOOKUP 函数
本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
学习啦在线学习网 VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
学习啦在线学习网 查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
学习啦在线学习网 需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
学习啦在线学习网 本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
2.1.2 excel 单元格下拉列表的建立
excel 单元格下拉列表的建立流程(以excel2013 为例):
学习啦在线学习网 数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
学习啦在线学习网 以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
学习啦在线学习网 Public Const pi = 3.1415926
学习啦在线学习网 2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
学习啦在线学习网 Function radtodms(rad)
学习啦在线学习网 degree = rad * 180 / pi
学习啦在线学习网 d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
学习啦在线学习网 LTrim(Str$(s)) + "″"
学习啦在线学习网 End Function
学习啦在线学习网 2.2.2 方位角计算函数
fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
学习啦在线学习网 Function fwj(dx, dy)
学习啦在线学习网 If dx = 0 Then
If dy = 0 Then fwj = "出错!"
If dy > 0 Then fwj = pi / 2
学习啦在线学习网 If dy < 0 Then fwj = pi * 3 / 2
Else
xxj = Atn(Abs(dy / dx))
学习啦在线学习网 If dx >= 0 And dy > 0 Then fwj = xxj
If dx <= 0 And dy > 0 Then fwj = pi - xxj
学习啦在线学习网 If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
学习啦在线学习网 End Function
2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
学习啦在线学习网 Function jiajiao(dx, dy, dtx, dty)
' 计算后视方向
hs = fwj(dtx, dty)
' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
学习啦在线学习网 If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
学习啦在线学习网 End Function
2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
运行总体步骤如下:
第一步:输入原始数据表单并校核;
学习啦在线学习网 第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
本文通过创建excel 模板文件解决的问题如下:
学习啦在线学习网 ①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
学习啦在线学习网 ③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
: $C9999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。查找范围:VLOOKUP (B10, 中桩坐标! $A
学习啦在线学习网浅谈基于Excel的道路工程计算技术论文
道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
学习啦在线学习网 ④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
学习啦在线学习网 下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
2.1 高级内置函数应用:数据管理、数据联动检索使用
2.1.1 VLOOKUP 函数
本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
学习啦在线学习网 查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
学习啦在线学习网 需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
2.1.2 excel 单元格下拉列表的建立
excel 单元格下拉列表的建立流程(以excel2013 为例):
学习啦在线学习网 数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
Public Const pi = 3.1415926
2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
学习啦在线学习网 Function radtodms(rad)
degree = rad * 180 / pi
d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
学习啦在线学习网 radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
LTrim(Str$(s)) + "″"
End Function
2.2.2 方位角计算函数
学习啦在线学习网 fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
Function fwj(dx, dy)
If dx = 0 Then
学习啦在线学习网 If dy = 0 Then fwj = "出错!"
If dy > 0 Then fwj = pi / 2
学习啦在线学习网 If dy < 0 Then fwj = pi * 3 / 2
Else
学习啦在线学习网 xxj = Atn(Abs(dy / dx))
学习啦在线学习网 If dx >= 0 And dy > 0 Then fwj = xxj
学习啦在线学习网 If dx <= 0 And dy > 0 Then fwj = pi - xxj
学习啦在线学习网 If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
End Function
2.2.3 夹角计算
学习啦在线学习网 当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
学习啦在线学习网 Function jiajiao(dx, dy, dtx, dty)
' 计算后视方向
学习啦在线学习网 hs = fwj(dtx, dty)
学习啦在线学习网 ' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
学习啦在线学习网 If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
学习啦在线学习网 If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
学习啦在线学习网 End Function
学习啦在线学习网 2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
学习啦在线学习网 核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
运行总体步骤如下:
第一步:输入原始数据表单并校核;
第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
学习啦在线学习网 第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
学习啦在线学习网 本文通过创建excel 模板文件解决的问题如下:
①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
学习啦在线学习网 ②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
: $C9999,2,FALSE)中的第二个参数—“中桩坐标! $A浅谈基于Excel的道路工程计算技术论文
道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
学习啦在线学习网 道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
学习啦在线学习网 ①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
学习啦在线学习网 下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
学习啦在线学习网 总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
学习啦在线学习网 以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
2.1 高级内置函数应用:数据管理、数据联动检索使用
2.1.1 VLOOKUP 函数
本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
2.1.2 excel 单元格下拉列表的建立
学习啦在线学习网 excel 单元格下拉列表的建立流程(以excel2013 为例):
数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
学习啦在线学习网 2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
Public Const pi = 3.1415926
2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
Function radtodms(rad)
学习啦在线学习网 degree = rad * 180 / pi
学习啦在线学习网 d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
LTrim(Str$(s)) + "″"
End Function
2.2.2 方位角计算函数
fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
Function fwj(dx, dy)
学习啦在线学习网 If dx = 0 Then
If dy = 0 Then fwj = "出错!"
学习啦在线学习网 If dy > 0 Then fwj = pi / 2
学习啦在线学习网 If dy < 0 Then fwj = pi * 3 / 2
Else
xxj = Atn(Abs(dy / dx))
学习啦在线学习网 If dx >= 0 And dy > 0 Then fwj = xxj
If dx <= 0 And dy > 0 Then fwj = pi - xxj
If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
学习啦在线学习网 End Function
学习啦在线学习网 2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
Function jiajiao(dx, dy, dtx, dty)
学习啦在线学习网 ' 计算后视方向
hs = fwj(dtx, dty)
学习啦在线学习网 ' 计算单个中桩夹角
学习啦在线学习网 jiajiao = fwj(dx, dy) - hs
If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
End Function
2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
学习啦在线学习网 核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
学习啦在线学习网 运行总体步骤如下:
第一步:输入原始数据表单并校核;
第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
学习啦在线学习网 第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
本文通过创建excel 模板文件解决的问题如下:
①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
学习啦在线学习网 :$C9999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
返回值的列数:VLOOKUP(B10,中桩坐标! $A
浅谈基于Excel的道路工程计算技术论文
学习啦在线学习网 道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
学习啦在线学习网 ①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
学习啦在线学习网 ②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
学习啦在线学习网 ③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
学习啦在线学习网 ④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
学习啦在线学习网 以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
2.1 高级内置函数应用:数据管理、数据联动检索使用
2.1.1 VLOOKUP 函数
本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
学习啦在线学习网 VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
学习啦在线学习网 查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
学习啦在线学习网 查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
学习啦在线学习网 精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
2.1.2 excel 单元格下拉列表的建立
excel 单元格下拉列表的建立流程(以excel2013 为例):
学习啦在线学习网 数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
学习啦在线学习网 2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
学习啦在线学习网 Public Const pi = 3.1415926
学习啦在线学习网 2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
Function radtodms(rad)
degree = rad * 180 / pi
学习啦在线学习网 d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
学习啦在线学习网 radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
学习啦在线学习网 LTrim(Str$(s)) + "″"
End Function
学习啦在线学习网 2.2.2 方位角计算函数
学习啦在线学习网 fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
学习啦在线学习网 Function fwj(dx, dy)
If dx = 0 Then
学习啦在线学习网 If dy = 0 Then fwj = "出错!"
学习啦在线学习网 If dy > 0 Then fwj = pi / 2
If dy < 0 Then fwj = pi * 3 / 2
Else
xxj = Atn(Abs(dy / dx))
If dx >= 0 And dy > 0 Then fwj = xxj
学习啦在线学习网 If dx <= 0 And dy > 0 Then fwj = pi - xxj
学习啦在线学习网 If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
学习啦在线学习网 End Function
2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
Function jiajiao(dx, dy, dtx, dty)
学习啦在线学习网 ' 计算后视方向
hs = fwj(dtx, dty)
学习啦在线学习网 ' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
学习啦在线学习网 If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
学习啦在线学习网 If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
学习啦在线学习网 End Function
学习啦在线学习网 2.3 VBA程序开发——批量计算数据
学习啦在线学习网 计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
学习啦在线学习网 运行总体步骤如下:
第一步:输入原始数据表单并校核;
第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
本文通过创建excel 模板文件解决的问题如下:
学习啦在线学习网 ①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
学习啦在线学习网 ②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
:$C9999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A
浅谈基于Excel的道路工程计算技术论文
学习啦在线学习网 道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
学习啦在线学习网 ①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
学习啦在线学习网 ②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
学习啦在线学习网 ③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
学习啦在线学习网 ④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
学习啦在线学习网 “导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
学习啦在线学习网 总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
学习啦在线学习网 以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
学习啦在线学习网 2.1 高级内置函数应用:数据管理、数据联动检索使用
学习啦在线学习网 2.1.1 VLOOKUP 函数
本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
学习啦在线学习网 本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
学习啦在线学习网 精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
2.1.2 excel 单元格下拉列表的建立
excel 单元格下拉列表的建立流程(以excel2013 为例):
数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
学习啦在线学习网 以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
学习啦在线学习网 Public Const pi = 3.1415926
2.2.1 数据格式函数
学习啦在线学习网 radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
学习啦在线学习网 Function radtodms(rad)
学习啦在线学习网 degree = rad * 180 / pi
学习啦在线学习网 d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
学习啦在线学习网 radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
学习啦在线学习网 LTrim(Str$(s)) + "″"
End Function
2.2.2 方位角计算函数
学习啦在线学习网 fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
学习啦在线学习网 Function fwj(dx, dy)
学习啦在线学习网 If dx = 0 Then
学习啦在线学习网 If dy = 0 Then fwj = "出错!"
If dy > 0 Then fwj = pi / 2
If dy < 0 Then fwj = pi * 3 / 2
Else
学习啦在线学习网 xxj = Atn(Abs(dy / dx))
If dx >= 0 And dy > 0 Then fwj = xxj
If dx <= 0 And dy > 0 Then fwj = pi - xxj
学习啦在线学习网 If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
End Function
学习啦在线学习网 2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
Function jiajiao(dx, dy, dtx, dty)
学习啦在线学习网 ' 计算后视方向
学习啦在线学习网 hs = fwj(dtx, dty)
' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
学习啦在线学习网 If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
End Function
学习啦在线学习网 2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
学习啦在线学习网 核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
学习啦在线学习网 运行总体步骤如下:
第一步:输入原始数据表单并校核;
第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
学习啦在线学习网 第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
本文通过创建excel 模板文件解决的问题如下:
①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
学习啦在线学习网 ③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
:$C9999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A
浅谈基于Excel的道路工程计算技术论文
学习啦在线学习网 道路工程是从事道路的规划、勘测、设计、施工、养护等的一门应用科学和技术。是土木工程的一个分支。以下是学习啦小编今天为大家精心准备的:浅谈基于Excel 的道路工程计算技术相关论文。内容仅供参考,欢迎阅读!
浅谈基于Excel 的道路工程计算技术全文如下:
道路工程的施工现场数据(施工放样、数量计算等)采用手工计算(各种计算器)具有直观好理解的有点,缺点是易出错、效率低。用传统的编程方法(VB、VC 等)优点是计算准确、效率高,缺点是需要编制专用的程序,需要专业人员有很好的编程能力,使用者需要一定的培训。基于此,引入Excel 进行相应计算,数据的输入输出(均在Excel 界面)变得十分直观、高效,计算过程可以采用插入函数计算等,在广大工程人员中有了广泛应用;但是,仔细分析尚有如下不足:
①数据的输入、输出在一个界面,操作时宜相互干扰,宜造成原始数据易改动,数据量大时,操作界面数据类型多、混乱;
②对自定义函数应用较少,所定义的公式过于简单、缺乏可维护性;
③因为缺乏对高级函数的应用,数据引用处于较低水平,方法不易分工协作;
④认为VBA 就是编程,多数人退避三舍,造成批量数据计算手工操作过多,效率低、强度高。
下面以常见的已知导线点坐标、已知中桩坐标,按指定导线点为测站和后视点计算极坐标放样数据的excel 过程来展示基于数据管理、检索、批量数据处理系统过程、高级函数、自定义函数和VBA 程序。
1 界面设计
“导线点”表单、“中桩坐标”表单向“总控界面”表单提供数据检索和关联的原始数据,总控界面计算单个放样数据、同时可以批量计算数据填写于“批量计算”表单。
总控界面可以自动检索“导线点”表单导线点个数、“中桩坐标”表单中桩个数,测站、后视点、开始桩号、结束桩号、单个中桩(桩号)均采用下拉列表选择,相应的坐标(X,Y)自动检索后填充于表格,这样可以防止数据出错、同时方便数据分类管理。
2 关键技术
以下主要讨论:单个数据防止出错,需要检索;批量数据处理需要VBA 对单元格调用。
学习啦在线学习网 2.1 高级内置函数应用:数据管理、数据联动检索使用
学习啦在线学习网 2.1.1 VLOOKUP 函数
学习啦在线学习网 本文基于office 2013 版本写作(其他版本的office可供参考)。该函数的主要功能:按着查找目标把其他表单对应值返回当前单元格—把具有相同查找目标的值从其他表单返回当前表单指定位置。 “主控界面”(B9 即第2 列第9 行)下拉列表找到单个中桩的桩号(K115+500),则后面两列(C9、D9)中通过该函数自动检索到“中桩坐标”表单对应的X、Y 值(4038008.989、531541.360)。
学习啦在线学习网 VLOOKUP 函数的调用格式VLOOKUP 函数的调用基本格式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
VLOOKUP 函数的进一步说明,VLOOKUP (查找目标,查找范围,返回值的列数,精确OR 模糊查找):
查找目标:VLOOKUP (B10, 中桩坐标! $A$2: $C$999999,2,FALSE)中的第一个参数—“B10”,即中桩桩号,当前为“ZK115+500”。
学习啦在线学习网 查找范围:VLOOKUP (B10, 中桩坐标! $A $2: $C$999999,2,FALSE)中的第二个参数—“中桩坐标! $A$2:$C$999999”,即 “中桩坐标”表单的A~C 列1-999999 行的区域,999999—是区域的行数,可以根据需要进行相应变化。
学习啦在线学习网 需要特别注意的是:查找目标(桩号列)一定要在该区域的第一列;该区域中一定要包含要返回值所在的列,本例中要返回的值是X。
学习啦在线学习网 返回值的列数:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中的第3 个参数—“2”,它是一个整数值。它是“返回值”在第二个参数给定的区域中的列数。
学习啦在线学习网 本例中我们要返回的是“X”,它是第二个参数查找范围“中桩坐标! $A$2:$C$999999”的第2 列。这里一定要注意,列数不是在工作表中的列数,而是在查找范围区域的第几列。
精确OR 模糊查找:VLOOKUP(B10,中桩坐标! $A$2:$C$999999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。
学习啦在线学习网 2.1.2 excel 单元格下拉列表的建立
学习啦在线学习网 excel 单元格下拉列表的建立流程(以excel2013 为例):
数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
学习啦在线学习网 2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
学习啦在线学习网 Public Const pi = 3.1415926
学习啦在线学习网 2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
Function radtodms(rad)
学习啦在线学习网 degree = rad * 180 / pi
学习啦在线学习网 d = Int(degree)
f = Int((degree - d) * 60)
学习啦在线学习网 s = Int(((degree - d - f / 60) * 3600) * 10) / 10
学习啦在线学习网 radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
LTrim(Str$(s)) + "″"
End Function
学习啦在线学习网 2.2.2 方位角计算函数
学习啦在线学习网 fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
Function fwj(dx, dy)
学习啦在线学习网 If dx = 0 Then
If dy = 0 Then fwj = "出错!"
If dy > 0 Then fwj = pi / 2
If dy < 0 Then fwj = pi * 3 / 2
Else
xxj = Atn(Abs(dy / dx))
If dx >= 0 And dy > 0 Then fwj = xxj
学习啦在线学习网 If dx <= 0 And dy > 0 Then fwj = pi - xxj
If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
学习啦在线学习网 End Function
2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
Function jiajiao(dx, dy, dtx, dty)
学习啦在线学习网 ' 计算后视方向
hs = fwj(dtx, dty)
学习啦在线学习网 ' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
学习啦在线学习网 If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
End Function
学习啦在线学习网 2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
运行总体步骤如下:
第一步:输入原始数据表单并校核;
学习啦在线学习网 第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
学习啦在线学习网 第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
本文通过创建excel 模板文件解决的问题如下:
①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
学习啦在线学习网 ③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章:
学习啦在线学习网 :$C9999,2,FALSE)中最后一个参数—“FALSE”,是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4 个参数如果指定值是0 或FALSE 就表示精确查找,而值为1 或TRUE 时则表示模糊。学习啦在线学习网 2.1.2 excel 单元格下拉列表的建立
excel 单元格下拉列表的建立流程(以excel2013 为例):
数据验证→数据验证→设置→序列→来源→选定所需表单对应的列。
以设置导线点的测站为例(后视点、开始桩号、结束桩号、单个中桩也需要类似设置),需要选择导线点表单的第一列数据。
2.2 自定义函数:数据格式、方位角计算函数统一的全局常量定义,所有模块均用到此常量,这样其他模块均可以用到常量Pi 的值。原代码如下:
学习啦在线学习网 Public Const pi = 3.1415926
2.2.1 数据格式函数
radtodms(rad)函数功能:把弧度转变为度分秒,度、分均为整数,秒为保留一位小数的数值。rad 为参数,radtodms 为函数,源代码如下:
Function radtodms(rad)
学习啦在线学习网 degree = rad * 180 / pi
d = Int(degree)
f = Int((degree - d) * 60)
s = Int(((degree - d - f / 60) * 3600) * 10) / 10
radtodms = Str$(d) + "°" + LTrim(Str$(f)) + "′" +
LTrim(Str$(s)) + "″"
End Function
2.2.2 方位角计算函数
fwj(dx, dy)函数,dx、dy 分别为某点相对于测站的X、Y 的坐标增量;fwj 为对应于dx、dy 的方位角,方位角计算结果单位为弧度。dx=0 时,需要单独讨论。
Function fwj(dx, dy)
If dx = 0 Then
学习啦在线学习网 If dy = 0 Then fwj = "出错!"
If dy > 0 Then fwj = pi / 2
学习啦在线学习网 If dy < 0 Then fwj = pi * 3 / 2
Else
xxj = Atn(Abs(dy / dx))
If dx >= 0 And dy > 0 Then fwj = xxj
If dx <= 0 And dy > 0 Then fwj = pi - xxj
If dx <= 0 And dy < 0 Then fwj = pi + xxj
If dx >= 0 And dy < 0 Then fwj = 2 * pi - xxj
End If
学习啦在线学习网 End Function
学习啦在线学习网 2.2.3 夹角计算
当放样采用极坐标夹角方式时,后视方向的坐标增量为dtx, dty,中桩方向的坐标增量为dx, dy,jiajiao 为计算结果,是中桩方向方位角与后视方向方位角的差。
Function jiajiao(dx, dy, dtx, dty)
学习啦在线学习网 ' 计算后视方向
学习啦在线学习网 hs = fwj(dtx, dty)
' 计算单个中桩夹角
jiajiao = fwj(dx, dy) - hs
If jiajiao < 0 Then jiajiao = jiajiao + 2 * pi
If jiajiao > 2 * pi Then jiajiao = jiajiao - 2 * pi
End Function
2.3 VBA程序开发——批量计算数据
计算后视方位角,确定计算范围,表头填写,逐桩方位角计算、距离计算、夹角计算,数据回填表格。
核心技术是表格的引用。以源代码中的第五行为例,“Worksheets("主控界面").Cells(4,3)”其他的引用可以参照此。既可以从单元格提取信息(一般提取信息为文本,必要时需要通过VAL 函数转变为数值才能参加计算)也可以单元格写入信息。源代码略。
3 运行过程
运行总体步骤如下:
第一步:输入原始数据表单并校核;
学习啦在线学习网 第二步:利用下拉列表选择测站点编号、后视点编号、单个中桩桩号,此时excel 自动计算该中桩对应的极坐标放样数据—方位角和距离等;
第三步:选定开始桩号、结束桩号,批量计算放样数据按钮。
4 结论
学习啦在线学习网 本文通过创建excel 模板文件解决的问题如下:
①单个数据计算为了防止输入错误采用了下拉列表与Vlookup 函数组合的方式;
②为了完成单个数据的计算、格式化自定义了若干函数并予以引用举例;
学习啦在线学习网 ③为了完成批量数据计算编制了VBA 程序。
对于道路工程施工数据数据计算过程具有高效、防错等作用。本计算思路不但可以用于施工计算,也可以用于设计计算。
相关文章: