ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 相见是缘8

[求助] 修改次序混乱不同的数量单位和重复的数量单位

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-9 07:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sylun 发表于 2022-9-8 23:16
前两晚多次尝试回复都出现问题,昨晚尝试将回复内容拆分为三帖,最后只有前两部分的帖可见,因均需审核且时 ...

sylun 老师好!
代码,在“413191246se老师”的指教下,可正常运行了,替换结果也接近完美了,就是有一处,以“百”为单位的,如“百升”处,会没有了,这个还有办法吗?(因真实文档中,还有百两、百枚、百片、百粒……等)。
另外,可不可以,把“升”的单位,排在后面,即:“斤两克钱分厘枚粒片升”(我试着调换了,没成功),因按中医的“默认”排序,升,它是排在最后的。
3.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-9 07:14 | 显示全部楼层
413191246se 发表于 2022-9-8 19:35
相见:请将第 47 楼 从 167 行至结尾的代码复制到 sylun 老师的第 5 版本代码后面即可(但是在同一个模块内 ...

413191246se 老师,多谢指教,可以了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-9 07:31 | 显示全部楼层
sylun 发表于 2022-9-8 23:16
前两晚多次尝试回复都出现问题,昨晚尝试将回复内容拆分为三帖,最后只有前两部分的帖可见,因均需审核且时 ...

sylun 老师!
能不能用文档 “压缩” 件的方式,发上来?

TA的精华主题

TA的得分主题

发表于 2022-9-9 22:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
相见是缘8 发表于 2022-9-9 07:31
sylun 老师!
能不能用文档 “压缩” 件的方式,发上来?

一并对前一个代码进行了更新,主要是处理数量单位后面的”半“字排序和添加匹配”百“”升“等数量字情形问题,但还是有其他异常匹配未作处理,如原文档中若有同量并排药材的情形,且药材名后有括号加注内容且该内容中间有句号冒号分号等时。另,百字前应有数字才会匹配。 文本.zip (2.56 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2022-9-9 23:10 | 显示全部楼层
413191246se 发表于 2022-9-8 08:00
* 首先,向 sylun 兄 表示抱歉!我每次都要求兄台回答一个 VBA 小问题,这点很不好!我要自行百度或自己解 ...

我很少使用Gosub 语句,感觉不够直观,如有必要,一般另用独立的过程。另外,我是尽量用Range对象,Selection对象是全局性的,感觉有时不好把控。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-10 06:04 | 显示全部楼层
sylun 发表于 2022-9-9 22:49
一并对前一个代码进行了更新,主要是处理数量单位后面的”半“字排序和添加匹配”百“”升“等数量字情形 ...

sylun 老师好!
我用你文本上的代码,测试结果还是有不正确的地方,见图中红箭头所指处。
4.png

TA的精华主题

TA的得分主题

发表于 2022-9-11 11:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 sylun 于 2022-9-11 23:18 编辑
相见是缘8 发表于 2022-9-10 06:04
sylun 老师好!我用你文本上的代码,测试结果还是有不正确的地方,见图中红箭头所指处。

经查,原来是因大意,查重部分的表达式没有将“百”字添加进去,且原代码药材用量匹配不全之故,导致相关问题在原模拟文档处理结果中没发现。现代码(见附件)经对原文档作简单修改后粗测通过,请楼主再详细测试,如有新问题请楼主提供新的模拟文档。 代码文本2.zip (2.47 KB, 下载次数: 8)


附件已更新

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-11 14:49 | 显示全部楼层
sylun 发表于 2022-9-11 11:40
经查,原来是因大意,查重部分的表达式没有将“百”字添加进去,且原代码药材用量匹配不全之故,导致相关 ...

sylun 老师辛苦了!
我用你文本上的代码,测试结果,现在只剩下一个“百升”的问题未解决了(还会把它删除了),见图中箭头所指处。这个可有办法?(因真实文档中,还有很多类似百两、百枚、百片、百粒……等)。
5.png

模拟文档.rar

2.81 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2022-9-11 23:20 | 显示全部楼层
相见是缘8 发表于 2022-9-11 14:49
sylun 老师辛苦了!我用你文本上的代码,测试结果,现在只剩下一个“百升”的问题未解决了(还会把它删除 ...

前面64楼已提过百字前应有数字才匹配,因num数组中100的汉字数字为”一百“,如果同时出现两种表述,则不会认为是同量,要完全合并较复杂(现更新的代码就是这样简单合并的结果),不作考虑,其实楼宇可以先选择其中一种并预先替换好。67楼的代码已更新,请详细测试。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-12 06:04 | 显示全部楼层
本帖最后由 相见是缘8 于 2022-9-12 06:49 编辑
sylun 发表于 2022-9-11 23:20
前面64楼已提过百字前应有数字才匹配,因num数组中100的汉字数字为”一百“,如果同时出现两种表述,则不 ...
sylun 老师好!
刚测试了你该楼更新的代码(运行不了,你可能漏掉了《NumToCnNum》宏,加上就好了),“百升”的保住了,可现在会把百字前面带有数字的删掉了(见图),如这个问题,实在不能“两全其美”,很难处理,能不能不删掉它,这样以后我好再手工处理。

8.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 06:41 , Processed in 0.046240 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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