标签:
野生程序猿 | 发表时间:2014-12-09 17:15:51 | 更新时间: 2020-04-24 23:12:51 | 阅读数:450 | 评论数:0 | 字数:899
本文2014-12-09 17:15:51首发于新浪博客,地址:http://blog.sina.com.cn/s/blog_638f98570102vfet.html。
发布一个可以计算桩号之差(也就是得到长度)的Excel(或WPS)扩展函数,可以减少工程师在统计工程量时的工作量。
该函数具有一定的通用性。可以在MSOffice和金山WPS上使用。
文末会给出使用本函数的简单步骤,关于如何在Excel(或WPS)中自定义函数的较详细介绍请移步这里[1]。
将下面短横线之间(不包含)的内容复制到模块中去,保存后即可使用自定义的ZH_Len函数计算两个桩号之间的长度。
'函数:ZH_Len
'作用:起终点桩号之差(返回数字)
'作者:@我只是一小小鸟t5lyg@126.com
'版本:V1.0
'时间:2014.12.09
FunctionZH_Len(终点桩号,起点桩号)
ZH_Len=ToNumber(终点桩号)-ToNumber(起点桩号)
EndFunction
'去掉字符串中的非数字
'考虑了小数、负数的情况,但是不能处理两个负号的桩号
FunctionToNumber©
DimTemp
Temp=""
Fori=1ToLen©
IfIsNumeric(Mid(C,I,1))=TrueThen
Temp=Temp&Mid(C,I,1)
ElseIfMid(C,I,1)="."Then'考虑小数
Temp=Temp&Mid(C,I,1)
ElseIfMid(C,I,1)="-"Then'考虑负数
Temp="-"
EndIf
Nexti
ToNumber=Temp
EndFunction
说明:
1.事实上,这个函数可以计算任何两个带数字的字符串的数字之差;
2.可以处理小数、带1个负号这两种特殊桩号,但是不能准确识别带2个负号的桩号。当然,2个负号的桩号很逆天,不大可能出现。
3.应允许宏运行,并在Excel中允许所有宏运行,并重新打开。
简单步骤(以WPS为例):
Step1打开WPS,点击开发工具>>VB编辑器。
Step2插入一个空模块。
Step3将函数粘贴到模块中,保存,关闭VB编辑器。
Step4在表格中使用自定义函数。