[VBA]发布一个计算桩号之差的Excel自定义函数(VBA)

 

这是一个可以计算桩号之差(也就是得到长度)的Excel(或WPS)扩展函数,可以减少工程师在统计工程量时的工作量。

该函数具有一定的通用性。可以在MS Office和金山WPS上使用。

文末会给出使用本函数的简单步骤,关于如何在Excel(或WPS)中自定义函数的较详细介绍请移步这里[1]

将下面内容复制到模块中去,保存后即可使用自定义的ZH_Len函数计算两个桩号之间的长度。

'函数:ZH_Len
'作用:起终点桩号之差(返回数字)
'作者:@我只是一小小鸟   t5lyg@126.com
'版本: V1.0
'时间:2014.12.09
Function ZH_Len(终点桩号, 起点桩号)
    ZH_Len = ToNumber(终点桩号) - ToNumber(起点桩号)
End Function
'去掉字符串中的非数字
'考虑了小数、负数的情况,但是不能处理两个负号的桩号
Function ToNumber(C)
    Dim Temp
    Temp = ""
    For i = 1 To Len(C)
        If IsNumeric(Mid(C, i, 1)) = True Then
            Temp = Temp & Mid(C, i, 1)
        ElseIf Mid(C, i, 1) = "." Then '考虑小数
            Temp = Temp & Mid(C, i, 1)
        ElseIf Mid(C, i, 1) = "-" Then '考虑负数
            Temp = "-"
        End If
    Next i
   ToNumber = Temp
End Function

说明:-----

1. 事实上,这个函数可以计算任何两个带数字的字符串的数字之差;

2. 可以处理小数、带1个负号这两种特殊桩号,但是不能准确识别带2个负号的桩号。当然,2个负号的桩号很逆天,不大可能出现。

3. 应允许宏运行,并在Excel中允许所有宏运行,并重新打开。

简单步骤(以WPS为例):

打开WPS,点击开发工具>>VB编辑器→插入一个空模块→将代码粘贴到模块中,保存,关闭VB编辑器→在表格中使用自定义函数

Step 1 打开WPS,点击开发工具>>VB编辑器。

 

Step 2 插入一个空模块。

 

Step 3 将函数粘贴到模块中,保存,关闭VB编辑器。

 

Step 4 在表格中使用自定义函数。

 

-----

[1]http://blog.sina.com.cn/s/blog_638f98570101fbqn.html

-----

如果您认为本文对您的工作或学习有所帮助,请对作者表示支持(评论、转载或分享),以使他获得继续写作的动力。如有任何疑问,欢迎联系t5lyg@126.com交流。

-----

版权声明:本文由@我只是一小小鸟创作,采用“知识共享 署名-非商业性使用-禁止演绎 3.0 中国大陆 许可协议”进行许可。除非注明,均为原创文章,转载请注明:转载自这只是一小小鸟窝,并保留本段声明。本文地址:http://blog.sina.com.cn/s/blog_638f98570102vfet.html

 

posted @ 2014-12-26 13:46  TranSteel  阅读(768)  评论(0编辑  收藏  举报