ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] EXCLE如何利用函数或者VBA将计算式中的汉字

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-18 23:12 | 显示全部楼层
mzbao 发表于 2019-10-18 08:56
前段时间刚好写了一个自定义函数,分享给你。

可以了,非常棒。

TA的精华主题

TA的得分主题

发表于 2019-10-18 23:13 | 显示全部楼层
应该是正则的pattern你没输对,试下这个
\([^()]*[\u4e00-\u9fa5][^()]*\)

TA的精华主题

TA的得分主题

发表于 2019-10-19 08:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ggmmlol 于 2019-10-19 08:26 编辑
mzbao 发表于 2019-10-18 08:56
前段时间刚好写了一个自定义函数,分享给你。

我并不记得自己拥有"mzbao"的马甲id啊?!
你可以说“转载”,也可以说“抄”,或者“改”,那最起码包含了对原作者的尊重。怎么你就偏偏好意思在本论坛里就堂而皇之地自称“前段时间刚好写了”一个自定义函数呢?!

TA的精华主题

TA的得分主题

发表于 2019-10-19 09:20 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
现在学术论文有查重率,分享vba代码值得借鉴。

TA的精华主题

TA的得分主题

发表于 2019-10-19 09:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
“带注释字符的计算式求值”,是工程量计算中最常见的场景。
我的正则表达式小工具——【超级查找替换】,有对于这种场合的专门解决方案:
把特定规则的注释字符删除掉,即替换为(空),并添加一个前缀"=",使之简化为普通公式,且把目标格式设置为“常规”,以便公式自动计算。
通常,注释内容要么全是汉字,要么就用特定符号标记出来(比如成对的半角方括号或全角方括号),以便与计算式本身的字符做区分。

本例子的注释字符的判断规则比较特别,是:“包含了汉字的成对圆括号”。以正则表达式的理解方式,描述为以下5个部分:
左括号+任意多个非括号字符+至少一个汉字+任意多个非括号字符+右括号
对应的正则表达式为:
[\((][^\(()\)]*[一-龥][^\(()\)]*[\))]

演示如下:
带注释计算式求值.gif

TA的精华主题

TA的得分主题

发表于 2019-10-19 10:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
尝试一下导入SQLSERVER,使用Management Shudio创建一个空数据库,导入Excel表。
新建查询窗口
创建一个函数:

create function fun_del_chinese
(@col varchar(1000))
returns varchar(1000)
AS
begin
    declare @returnchar varchar(1000),@len int
    select @returnchar='',@len=1

    while(@len<=len(@col))
    begin
        if(ASCII(substring(@col,@len,1))<122)
        set @returnchar=@returnchar+substring(@col,@len,1)
        set @len=@len+1
    end
return @returnchar
end
go
------------------------------------------------------------------------------------------
在执行update删除

update
    数据库表名称
set
    存放数据字段名=dbo.fun_del_chinese(存放数据字段名)
from
    数据库表名称
---------------------------------------------------------------------------
原文出处:
版权声明:本文为CSDN博主「little_fatty」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li4562258fj155/article/details/51582778

TA的精华主题

TA的得分主题

发表于 2019-10-19 10:19 | 显示全部楼层
zopey 发表于 2019-10-19 09:20
现在学术论文有查重率,分享vba代码值得借鉴。

分享代码,我不仅不反对,而且支持;但是,“分享”、“转载”的行为与“冒名抄袭”是截然不同的两种行为。

前者的表现一般是明确标注出引用的来源(原作者和发表处),当不确定准确来源时,就标注“来自网络”或“作者非本人”,最低限度,就不作任何说明,由读者自行判断。
但"mzbao"此人把抄来的几乎整个成品,说成是自己“前段时间刚好写了……”,毫无疑问就是“冒称原著”了,这种行为,可不什么长脸面的事

TA的精华主题

TA的得分主题

发表于 2019-10-19 15:05 | 显示全部楼层
ggmmlol 发表于 2019-10-19 08:24
我并不记得自己拥有"mzbao"的马甲id啊?!
你可以说“转载”,也可以说“抄”,或者“改”,那最起码包含 ...

我是抄了核心的部分,但是我为了符合我自己的需求,也改了和完善了很多啊。并且我这又不是分享帖,我只是分享给楼主。怎么就不尊重原作者了呢,难道我还非得写过我抄了部分,再修改了部分?
这论坛回帖帮忙其他人的代码,有几个人的代码不是从论坛里抄一部分,自己再写一部分的。如果我专门开了分享帖,然后说我自己写的,你可以说我不尊重原作者,但是我并没有这么做啊。

TA的精华主题

TA的得分主题

发表于 2019-10-19 15:28 | 显示全部楼层
ggmmlol 发表于 2019-10-19 08:24
我并不记得自己拥有"mzbao"的马甲id啊?!
你可以说“转载”,也可以说“抄”,或者“改”,那最起码包含 ...

我知道我这个代码是抄你帖里的http://club.excelhome.net/thread-1439296-1-1.html,我自己Excel里代码前都注明了。
这代码我也是几个月前在你那复制的,但是为了符合自己的需求,我陆续也改了不少,我前段时间确实也才又改过一遍,看到楼主的需求,我改过后的代码也确实能完全满足他的需求,我也就分享给他了。

但是这次我本意也只是帮助楼主,如果对你造成了困扰,我表示抱歉。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-19 21:41 | 显示全部楼层
mzbao 发表于 2019-10-19 15:28
我知道我这个代码是抄你帖里的http://club.excelhome.net/thread-1439296-1-1.html,我自己Excel里代码前 ...

谢谢你们啦,不过这个代码用起来的真的很不错,对比了很多,这个实用性的确很大。不过你们无畏的分享出来,不管是原作者,还是修改者都是值得尊敬的,可能有时候措辞用的不恰当而已,总之谢谢你们
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-26 01:11 , Processed in 0.040129 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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