VBA Excel / Word查找和replace

我正在开发Excel工作表来searchWord文档中的特定实例(列A),并将其replace为单元格B中的实例。

我只想更改与search条件匹配的第一个实例,并将列循环到下一个实例。

我写了下面的代码。

如果我使用“wdReplaceAll”它将replaceWord文档中的所有特定实例。 如果我使用wdReplaceOne“代码会在第一次更改后中断。

VBA代码:

Sub Replace() Dim pathh As String Dim pathhi As String Dim oCell As Integer Dim from_text As String, to_text As String Dim WA As Object pathh = "C:\Users\Rui.Fernandes\Arquivo Rui Fernandes\On.me Documentação\Construção\Documentos Obra Tipo\PGC.10.Ed.1 - Auditorias Internas.doc" Set WA = CreateObject("Word.Application") WA.Documents.Open (pathh) WA.Visible = True For oCell = 1 To 10 from_text = Sheets("PTAct").Range("A" & oCell).Value to_text = Sheets("PTAct").Range("B" & oCell).Value With WA .Activate With .Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = from_text .Replacement.Text = to_text .Execute Replace:=wdReplaceAll End With End With Next oCell End sub 

我怎么能使它做我想要的?

你做后期绑定,所以wdReplaceAll和wdReplaceOne不会是你所期望的。 查看Word VBA帮助WdReplace枚举及其值。

 Sub Replace() Dim pathh As String Dim pathhi As String Dim oCell As Integer Dim from_text As String, to_text As String Dim WA As Object pathh = "C:\Users\axel\Documents\replacetest.docx" Set WA = CreateObject("Word.Application") WA.Documents.Open (pathh) WA.Visible = True For oCell = 1 To 10 from_text = Sheets("PTAct").Range("A" & oCell).Value to_text = Sheets("PTAct").Range("B" & oCell).Value With WA.ActiveDocument Set myRange = .Content With myRange.Find .Execute FindText:=from_text, ReplaceWith:=to_text, Replace:=1 End With End With Next oCell End Sub 

问候

阿克塞尔