ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7350|回复: 7

[原创] 通用单位换算函数,任意多的单位换算,自动识别任意多的单位别名

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-4-16 15:20 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:自定义函数开发
本帖最后由 mima1996 于 2014-4-16 20:29 编辑

问题提出:
有没有这样一段代码,可以解决单位换算的问题,最好做成一个函数,只要代入转换前单位和转换后单位,就可以返回单位转换的系数?
问题一、同一个单位往往有多种表达方法,如公斤=千克=KG=Kilogram,如果用户输入的参数是“公斤”,而数据库保存的是KG,那么肯定找不到答案。
问题二、世界上各种“单位”多如牛毛,有些单位我们从来没有接触过,有些单位是最近才发明的,怎么才能找到完整的单位换算表呢?
问题三、有些物品需要将容积转换成重量,同一名称不同规格型号的物品,其转换系数都不一样,怎么写转换函数呢?
解决方案:
问题三需要特殊处理,不在本次讨论之列。
问题二通过建立可扩展的单位换算表解决。
问题一通过建立可扩展的单位别名表解决。
根据以上思路,我建立了一个工作薄及相应的处理程序。
列举几种用法如下:
1、在本工作薄VBE中函数调用:ChgUnt(a, b),见工作薄之模块1之test().
2、其它工作薄引用本工作薄,然后用函数调用: ChgUnt(a, b),见“工作薄1.xls”,或本工作薄“Sheet1”
3、其它工作薄不引用本工作薄,在打开本工作薄的情况下,输入公式: “=料品主档.xlsm!chgunt(a,b)”,见“工作薄2.xls”
其它说明:
本程序含有特别代码,用于处理将指定格式的单位换算表,保存为“通用单位换算表”与“单位别名表”。
本程序应用了诸多提高程序运行速度的手段,执行效率较好。
本程序使用了数组和字典,并加入较多注释,可供初学者参考。
本程序未经大量使用,难免存在潜在错误,欢迎诸位读者提出改进意见。
以上说明如果还有不清楚的地方,欢迎回贴提出。

通用单位换算表.rar

65.89 KB, 下载次数: 533

附原程序

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-4-16 15:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
欢迎新会员!
欢迎原创!做得不错。改为常用单位换算比较好。各种单位太多了。

TA的精华主题

TA的得分主题

发表于 2014-4-16 16:12 | 显示全部楼层
做得确实不错,不过自定义公式在其它工作簿中引用时还是很不方便,必须在打开本工作簿的前提下方能得到正确结果。不知有哪位高人能够帮忙尽可能完善一下。

TA的精华主题

TA的得分主题

发表于 2014-4-16 19:34 | 显示全部楼层
多谢版主和VBA万岁的夸奖。
通用主要是指程序,至于换算什么单位可以由每个公司自己设定。
要想不打开本工作薄的情况下使用本函数,可能需要封装成DLL文件,然后由EXCEL引用,每次随EXCEL自动打开。

TA的精华主题

TA的得分主题

发表于 2014-4-17 13:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-4-17 20:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-2-6 18:27 | 显示全部楼层
本帖最后由 mdc9 于 2016-2-6 18:28 编辑

多谢分享!能不能用公式实现呢?像百度在线应用  在线单位换算一样?如附件图所示
单位换算.jpg

TA的精华主题

TA的得分主题

发表于 2017-3-21 15:12 | 显示全部楼层
东西是好东西,可惜我不会用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 14:51 , Processed in 0.036511 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表