Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在Word宏中替换正则表达式_Regex_Vba_Ms Word - Fatal编程技术网

Regex 在Word宏中替换正则表达式

Regex 在Word宏中替换正则表达式,regex,vba,ms-word,Regex,Vba,Ms Word,是否可以对Word VBA中的RegExp对象使用替换模式?我是否可以在文档中搜索一个带有一串括号的模式,并将其替换为类似\4\2?(我试过了,但它使用了文本字符串。)有关带VBA的正则表达式的信息,请参阅。虽然这个具体的答案是专门为Excel VBA编写的,但它仍然适用于word 在示例代码中,他设置了MyRange=ActiveSheet.Range(“A1”),而您可以这样做,Set MyRange=ActiveDocument.Range(Start:=0,End:=Selection.

是否可以对Word VBA中的
RegExp
对象使用替换模式?我是否可以在文档中搜索一个带有一串括号的模式,并将其替换为类似
\4\2
?(我试过了,但它使用了文本字符串。)

有关带VBA的正则表达式的信息,请参阅。虽然这个具体的答案是专门为Excel VBA编写的,但它仍然适用于word

在示例代码中,他设置了
MyRange=ActiveSheet.Range(“A1”)
,而您可以这样做,
Set MyRange=ActiveDocument.Range(Start:=0,End:=Selection.End)
并将
MyRange.Value
替换为
MyRange.Text


现有答案是一个强大的工具。有时,查看所有其他Microsoft应用程序的Excel VBA代码很有帮助,因为Excel是为其编写代码最多的工具。

Word本身不支持正则表达式。它有自己的通配符功能。这与正则表达式类似,但不完全相同。您可以通过单击替换对话框(Ctrl+H)中的“更多”,激活“通配符”复选框,然后查看“特殊”中的列表来查看可能性。如果你在互联网上搜索一组术语,如-Word Find Replace Wildcard,你会发现很多例子和讨论


JDB_Dragon建议的方法在Word中通常不令人满意,因为只操作字符串然后将其写回文档会丢失所有格式。

Word不会,但Word中的VBA会。这就是为什么我指定了
RegExp
对象。不,VBA没有RegEx。您可以添加对为VBA代码提供正则表达式的库的引用,但它不是VBA的一部分。如果分发代码,则需要确保目标计算机具有该库,否则代码无法运行。而且,正如我所说,如果保留或应用单词格式是必要的,正则表达式将不起作用;我想,如果我在勾选一个方框后能够在VBA中使用它,那么它一定是VBA的一部分(我想当我第一次提到它时,应该已经很清楚我指的是什么)。不,格式与我的情况无关。我认为中的“示例4”符合我的要求,对吗?谢谢,我试试看。