我在Visual Basic中编写一个宏(呃,我知道)来解析Microsoft Word中的文档。这是我试图实现的工作流程:
Edit > Find > Find...
)。Edit > Find > Replace... > Replace
,但在执行替换之前使用确认对话框。)我可以使用Find.Execute
method
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="hi", _
ReplaceWith:="hello", Replace:=wdReplaceAll
但我不确定在执行替换之前如何提示用户。
答案 0 :(得分:2)
您可以使用消息框进行提示,然后测试返回值并根据以下内容执行替换:
Private Sub PromptForReplace()
Dim myRange As Range
Set myRange = ActiveDocument.Content
myRange.Find.ClearFormatting
myRange.Find.MatchWildcards = True
Dim cached As Long
cached = myRange.End
Do While myRange.Find.Execute("hi")
myRange.Select
If MsgBox("Replace " & myRange.Find.Text & "?", vbYesNo) = vbYes Then
myRange.Text = "hello"
End If
myRange.Start = myRange.Start + Len(myRange.Find.Text)
myRange.End = cached
Loop
End Sub