大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说vba通配符打开文件_正则表达式 回车,希望您对编程的造诣更进一步.
如要将一个Word文档内的两个汉字中间的空格替换掉(之所以要特定要求两个汉字中间,是为了避免文本中的英文空格替换掉),可以使用查找、替换的通配符。
查找:([一-﨩])( )([一-﨩])
替换:\1\3
写成VBA代码:
Sub 替换() With Selection.Find .Text = "([一-﨩])( )([一-﨩])" .Replacement.Text = "\1\3" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
如果使用正则的选择、查找、替换,则会有副作用,因为要先选择,会将其中的文本格式、图片都替换掉。
Sub replacetxt222() Dim regex As Object Dim regMatch As Object Set regex = CreateObject("VBScript.RegExp") Dim str As String str = Selection.Text With regex .Pattern = "([一-﨩])( )([一-﨩])" .MultiLine = True .Global = True .IgnoreCase = True str = .Replace(str, "$1$3") Debug.Print (str) End With Selection.Text = str End Sub
当然也可以将中文中的半角标点替换为全角:
([一-﨩])(,)([一-﨩])
\1,\3
通配符的一般规则为:
如(<*>) (<*>)就可以分组匹配两个单词,中间有空格。
另外,\d在正则中表示数字,而在查找、替换对话框中是没有这一写法的,可以用以下表达式表示:
[0-9]{1,2}
表示匹配一个或两个数字。
需要注意的是,VBA的正则表达式与查找对话框中的通配符的写法与支持的功能是有所区别的。
查找、替换对话框中不使用通配符时,可用^#来表示数字,其“特殊格式”的弹出菜单为:
如段落标记^p,通配符中用^13表示。
查找、替换对话框中使用通配符时,其“特殊格式”的弹出菜单为:
一些常用的特殊格式的通配符写法可以从以上弹出菜单中得到帮助。
-End-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/12021.html