我有很多文档的方括号内带有可变词,例如:
[my_word]
我的代码已经找到了所有这些单词,我将它们另存为String。
现在,我需要一个函数以ContentControl元素替换此String。这可能吗?因为我首先需要生成一个元素,然后使用[my_word]
更改里面的文本和它的标签。
任何帮助表示赞赏。
答案 0 :(得分:0)
到目前为止,我的代码看起来像这样(现在可以用一个控制元素一次替换一个单词;我想替换宏中的所有内部。Word告诉我无法替换多个选择,因此我将不得不手动重新运行此宏mutliple时间。)
Sub ReplaceTags()
'
' ReplaceTags Macro
'
'
Selection.Find.ClearFormatting
With Selection.Find
.Text = "\<?*\>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.Range.ContentControls.Add (wdContentControlText)
End Sub
编辑: 我做了一些代码工作,发现了一种解决方案来替换我要查找的文本:
Sub ReplaceTags()
'
' ReplaceTags Macro
'
'
With Selection.Find
.ClearFormatting
.Text = "\<?*\>"
.Execute Forward:=True
.MatchWildcards = True
End With
If Selection.Find.Found = True Then
Selection.Range.ContentControls.Add (wdContentControlText)
Selection.ParentContentControl.Tag = Selection.Text
End If
End Sub
我还是不太确定如何在整个文档上执行此操作,而不必多次单击“运行宏”
EDIT(EDIT): 我解决了如果将来有人遇到相同的问题:
Sub ReplaceAllTags()
'
' ReplaceAllTags Macro
'
'
For i = 0 To ActiveDocument.Words.Count
Selection.EscapeKey
Application.Run MacroName:="ReplaceTags"
Next
End Sub
ReplaceTags()与上面的功能相同。