VBA Microsoft用于Msword宏,使用包含字符串变量的通配符



word vba程序员,

问题:在MS Word中工作用户将选择一个字符串(一个或几个单词(,只是选择" Word1 Word2"。如果有这样的字符串后面是括号中的引用,即" Word1 Word2(234,21(",则宏将在整个文档中查看。从用户选择的文本中,将添加引用。我有代码以获取所选文本:Dim Sel作为选择DIM功能为字符串

Set Sel = Application.Selection
If Sel.Type <> wdSelectionIP Then
    MsgBox Sel.text
End If 
feature=sel.text

(功能是要查找的文本,然后是参考文献(

文本中的通配符是(*(,这意味着一个括号,然后进行任何更改,然后是近亲。

我的问题是以下代码不起作用:

With ActiveDocument.Content.Find
 .ClearFormatting
 .text = feature & (*)
  With .Replacement
    .ClearFormatting
    .text = feature & (*)
    .Font.Color = wdColorRed
  End with 
 .Forward = True
 .Wrap = wdFindContinue
 .Format = True
 .MatchCase = False
 .MatchWholeWord = False
 .MatchWildcards = true
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 .Execute Replace:=wdReplaceAll
End With

我什至无法运行,因为线 .text = feature&amp;(*(

变成红色,不了解。

这里的问题是如何将变量的内容(用户选择的文本(与通配符相结合,该通配符将为我提供该选定文本的实例,然后是括号,包括数字参考。

非常感谢。

用于搜索文本使用:

.text = feature & "((*))"

在这里, (与开场的帕伦匹配;(*)进行"组"匹配(允许您使用替换文本中的通配符匹配的内容(;和)匹配关闭的Paren。

用于替换文本使用:

.text = feature & "(1)"

在这里, (与开场的帕伦匹配;1返回第一个比赛"组"(通配符拿起的内容(;和)匹配关闭的Paren。

希望会有所帮助。

.text = feature & "(*)"

您正在尝试连接一个字符串,您需要将这些字符串放入括号中 - 无需在此处逃脱括号,因为它不是正则表达式。

xidgel,

谢谢。这是非常强大的。有用。我的印象通配符就像另一种语言。很难开始使用它们。

在任何情况下,我都意识到我还需要对MS-Word说的方式,从文本中的特定点说,必要的是替代括号中的参考文献中未遵循的功能,换句话说,将引用添加到没有这些功能的功能中,并且仅从我选择的文本中。

Xidgel代码在真正找到参考的功能的意义上完美地工作。

在寻找文本时:

.text = feature & "((*))"

我需要在变量中加载与

相对应的字符串
"((*))"

只需将此变量DIM Ref称为字符串为了能够替代然后

.text = feature & "[A-z]"

=特征后面是一个字符,即没有后面的括号

feature & Ref

相关内容

最新更新