用EXCELVBA自定义函数解决水文资料中的问题.docx

用EXCELVBA自定义函数解决水文资料中的问题.docx

ID:62053040

大小:145.52 KB

页数:3页

时间:2021-04-16

用EXCELVBA自定义函数解决水文资料中的问题.docx_第1页
用EXCELVBA自定义函数解决水文资料中的问题.docx_第2页
用EXCELVBA自定义函数解决水文资料中的问题.docx_第3页
资源描述:

《用EXCELVBA自定义函数解决水文资料中的问题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、利用EXCEL自定义函数功能实现水文数据的“四舍六入”云南水文水资源局大理分局解开创在水文工作中,我们需要用EXCEL来处理大量的水文数据,需要处理的水文数据通常要进行“四舍六入”,而EXCEL的内置函数又没有这方面的功能,这给我们水文工作带来了极大的不便。不过,我们可以通过EXCELVBA编程来实现自定义函数,也就是我们自己编一个具有“四舍六入”功能的函数来解决这一问题。下面我们将详细介绍如何实现这一功能及其的应用。一、什么是“四舍六入”按照相应水文规范的要求,水文及水质资料使用的“四舍六入五单双”,执行《数值修约规范》(GB8170-87)。

2、1.拟舍弃数字的最左一位数字小于5时,则舍去,即保留的各位数字不变。2.拟舍弃数字的最左一位数字大于或等于5时,而其后跟有并非全部为0的数字时,则进1,即保留的末位数字加1。3.拟舍弃数字的最左一位数字为5,而后面无数字或皆为0时,若所保留的末位数字为奇数(1,3,5,7,9)则进一,为偶数(2,4,6,8)则舍弃。0视为偶数。二、代码的实现下面是我们自定义“四舍六入”函数的完整代码,“'”后的汉字内容为代码注释内容。此程序是在“取绝对值(Abs)”、“取整(Int)”、“四舍五入(Round)”等系统内置函数的基础上完成的。函数的型式及其每个参

3、数需要用户在属性设置中定义和声明,故叫做自定义函数。此定义“四舍六入五单双”的函数名为Round5。'“四舍六入”自定义函数'函数形式Round5(x,mm),返回值Round5为Double型'X为操作数值,mm为保留小数位数'mm为Integer型,mm=0表示取整数'此算法是通过对要处理的数值进行倍数扩大,来获得需要比较数来实现“四舍六入”PrivateFunctionround5(XAsDouble,mmAsInteger)AsDoubleDimTemp1,Temp2AsStringTemp1=1Ifmm<0ThenTemp1=10^Ab

4、s(mm)X=X/Temp1mm=0EndIfIf((Int((Abs(X)-Int(Abs(X)))*10^mm)Mod2)=0And(Abs(X)*10^mm-Int(Abs(X)*10^mm))<=0.5)AndX<>Val(Round(Abs(X),mm)*Sgn(X))Thenround5=Val((Round(Abs(X)-10^(-mm)/5,mm)))Elseround5=Val(Round(Abs(X),mm))EndIfround5=Val(round5*Sgn(X)*Temp1)EndFunction三、具体的应用下面以EX

5、CEL2007为例,介绍该自定义函数的使用。1.首先打开已有的EXCEL2007表格或是新建工作簿,并保存为启用宏的工作薄。然后单击““开发工具”选项卡,再单击“VisualBasic”按钮,如图1所示,就进入VBA编程窗口,如图2所示。然后单击文件菜单“插入”在其下拉菜单中选择“模块”,此时在打开“模块1”的代码窗口,我们将上面的完整代码复制到该窗口,并保存。此代码是已经过测试,功能正常。这时我们的自定义函数已经做好,可以使用了,VBA编程窗口可以关闭。图1图22.如果“开发工具”选项卡不可用,执行下列操作以显示此选项卡:单击“Microsof

6、tOffice按钮”,然后单击“Excel选项”。在“常用”类别中的“使用Excel时采用的首选项”下,选中“在功能区中显示‘开发工具’选项卡”复选框,然后单击“确定”。要临时将安全级别设置为启用所有宏,执行下列操作:在“开发工具”选项卡上的“代码”组中,单击“宏安全性”。在“宏设置”类别中的“宏设置”下,单击“启用所有宏(不推荐,可能会运行有潜在危险的代码)”,然后单击“确定”。为帮助防止运行有潜在危险的代码,我们建议您在使用完宏之后恢复任何禁用所有宏的设置。3.完成上面的操作后,我们可以在EXCEL中使用该自定义函数。我们只要打开含有该自定义

7、函数的工作薄,输入刚才编好的函数名,选中要“四舍六入”的单元格,再输入要保留的小数点后的位数,如“=round5(A1,2)”,就可以对数值进入“四舍六入”了,其他没有该自定义函数的电子表格也是按照上面所述进行操作,Excel2003和Excel2000操作方法也类似。下面图3是使用过程中的例子。图3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。