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