这是一个可以计算桩号之差(也就是得到长度)的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 = To Len(C)
If IsNumeric(Mid(C, i, )) = True Then
Temp = Temp & Mid(C, i, )
ElseIf Mid(C, i, ) = "." Then '考虑小数
Temp = Temp & Mid(C, i, )
ElseIf Mid(C, i, ) = "-" 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

[VBA]发布一个计算桩号之差的Excel自定义函数(VBA)的更多相关文章

  1. Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

    帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...

  2. C# 获取当前月第一天和最后一天 计算两个日期差多少天

    获取当前月的第一天和最后一天 DateTime now = DateTime.Now; DateTime firstDay = ); DateTime lastDay = firstDay.AddMo ...

  3. 【转】发布一个基于NGUI编写的UI框架

    发布一个基于NGUI编写的UI框架 1.加载,显示,隐藏,关闭页面,根据标示获得相应界面实例 2.提供界面显示隐藏动画接口 3.单独界面层级,Collider,背景管理 4.根据存储的导航信息完成界面 ...

  4. [VBA]用一个简单例子说明如何在Excel中自定义函数

    Excel中的函数无疑是强大的,但是再强大的战士也有他脆弱的脚后跟[1].这两天在使用Excel的时候遇到了一个需求,要在某一个单元格里面自动计算今天是星期几(如显示 Today is Tuesday ...

  5. 使用gitbook 发布一个教程文档网站

    gitbook是一个好用的发布电子书的项目:使用gitbook 可以在本地写好文档再远程推送到库:也可以在gitbook提供的在线平台上制作电子书:要想在自己的服务器上使用gitbook 发布一个网站 ...

  6. 给定桩号获取纵断面中的高程值(c# for civil3d)

    通过civil3d提供的api,也就是纵断面Profile类提供的方法---public double ElevationAt(double station),就可以很轻松的获取纵断面对象某桩号处的高 ...

  7. 教你一步步发布一个开源库到 JCenter

    今天想来分享下,如何一步步自己发布一个开源库到 JCenter 这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而已,而是尽可能讲清楚,为什么需要有这个步骤,让大伙知其然的同时还知其 ...

  8. 发布一个PHP包到Packagist, 然后使用Composer安装

    Composer 能够方便的进行项目的依赖管理,  当我们发布一个包并且希望别人通过Composer安装的时候, 就需要将包发布到Composer的包仓库Packagist上面. 下面进行详细的说明一 ...

  9. 微信小程序发布一个月,世界并没有什么不同

    从某种意义上说,在张小龙身上,最可怕的事情莫过于微信小程序发布一个月,一开始的大红大紫居然渐归沉寂,曾经的风光无限已无人谈起,世界并没有什么不同. 这真像一场噩梦,一切都可怕地颠倒了.一款微信的战略级 ...

随机推荐

  1. VC CArchive类使用

    CFile file("D:\\1.txt",CFile::modeCreate | CFile::modeWrite); CArchive ar(&file,CArchi ...

  2. (转)Linux bash shell脚本语法入门

    http://www.linuxsky.org/doc/newbie/201004/389.html 1.基础 #!/bin/bash //bash脚本第一句都是这个,他会让系统指定以bash来解释这 ...

  3. 从epoll构建muduo-11 单线程Reactor网络模型成型

    mini-muduo版本传送门 version 0.00 从epoll构建muduo-1 mini-muduo介绍 version 0.01 从epoll构建muduo-2 最简单的epoll ver ...

  4. EditText设置可以编辑和不可编辑状态

    1.首先想到在xml中设置android:editable="false",但是如果想在代码中动态设置可编辑状态,没有找到对应的函数 2.然后尝试使用editText.setFoc ...

  5. ansible 学习与实践

    title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...

  6. 自定义控件 进度条 ProgressBar-2

    使用 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:bqt ...

  7. C#。5 结构体

    结构体:相当于是我们自己定义的一种复杂的类型. 常见简单类型:int...  double float bool char string 常见复杂类型:DateTime  数组类型 生活中大部份的对象 ...

  8. Request.ServerVariables 服务器环境变量

    Request.ServerVariables["Url"] 返回服务器地址 Request.ServerVariables["Path_Info"] 客户端提 ...

  9. Arcgis Engine - 鹰眼(减少闪烁)

    网上看到的代码,都是一个模样,经过不断调试,无意中效果就可以了.主要是在"鼠标拖动的时候",网上的代码的鹰眼效果,感觉坑爹死了,闪烁超级严重.主要原因是鼠标拖动的时候,进行时时更新 ...

  10. Android 虚拟机快捷键

    何须这样麻烦,直接用快捷键就行了,你用鼠标点来点去怎么还不如用快捷键来得快:一下是快捷键: Home键(小房子键) 在键盘上映射的就是home键,这倒是很好记. Menu键 用于打开菜单的按键,在键盘 ...