互  动
博文
当前位置: 首  页 > 互  动 > 博文
博文
262·发布一个计算桩号之差的Excel自定义函数(VBA)
发布时间:2015-1-2815:55:26来源:我只是一小小鸟博客作者:点击量:2077   

发布一个可以计算桩号之差(也就是得到长度)的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为例):

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