ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何自定义清除字符串中连续的重复字符或字符串的函数?

如何自定义清除字符串中连续的重复字符或字符串的函数?

作者:绿色风 分类: 时间:2022-08-17 浏览:140
楼主
kevinchengcw
Q: 如果文本中存在大量的连续重复字符串,如何能用自定义的函数将之清除到只留一个,如将“学VBA是一件相当相当相当有趣的事”转换成“学VBA是一件相当有趣的事”?
A: 利用自定义函数UnduplicateStr,可以实现这一功能。
打开需要的工作簿,按Alt+F11进入VBA编辑器,插入模块后复制下述代码到模块中,保存后即可在工作表中使用
代码如下:
  1. Function UnduplicateStr(ByVal Str As String, ByVal dChr As String) As String
  2. Do While InStr(Str, WorksheetFunction.Rept(dChr, 2)) > 0
  3. Str = Replace(Str, WorksheetFunction.Rept(dChr, 2), dChr)
  4. Loop
  5. UnduplicateStr = Str
  6. End Function


使用格式如下
=UnduplicateStr(字符串或字符串所在单元格地址,要替换的重复内容)
示例1:=UnduplicateStr("VBA is very very powerful!","very ")   '将连续的“very ”替换成一个,将得到结果“VBA is very powerful!”
示例2:设A1单元格内容为"He is good.",在A2单元格输入“=UnduplicateStr(A1,"o") ” '替换掉A1单元格中字符串里连续重复出现的字符o为一个o,将得到结果“He is god.”


可以实现替换指定字符串中的连续重复的指定字符或字符串的替换,效果如图

 

详情见附件
自定义UnduplicateStr函数.rar
2楼
wise



总觉得我当初用正则表达式做了一个的样子,我回头找找看
3楼
kevinchengcw
这个你也用正则,杀鸡用牛刀了吧

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap