[英]Simple Word VBA replacement macro
我正在嘗試搜索Word文檔並使用指定值替換特定字符串(使用“特殊”的硬編碼值)。 該宏清楚地表明它在Word編輯器中找到了正確的文本,但替換功能不起作用。 這是我絕對的第一次VBA體驗,所以如果可能的話,我會喜歡一些幫助。 以下代碼是宏...
Sub Test()
'
' Test Macro
'
'
Documents.Open FileName:="C:\Users\abensch\Documents\NANTDocMerge\DMID - Backups\System Clock Ability.docx", _
ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", _
Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, _
XMLTransform:=""
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Special"
.Replacement.Text = "Potato"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub
我不確定Select.Find中的大多數指定參數是否必要,並且刪除它們似乎不會影響宏的性能,但我想我會讓它們保持安全。 我想知道它是否可能是一個Word格式問題,雖然我試圖用兩個ClearFormatting調用刪除所有格式。
如果你想做一個全部替換然后改變
Selection.Find.Execute
至
Selection.Find.Execute Replace:=wdReplaceAll
如果您只想替換第一個實例而不是全部,那么請使用它
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Special"
.Replacement.Text = "Potato"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.