2016-07-03 1 views
0

У меня возникли проблемы для того чтобы достигнуть следующего:VBA: Из макроса Excel, выполнить поиск и замена функции в открытом документе слово

Изнутри макроса Excel, мне нужно, чтобы открыть документ Word (мне удалось на этом), а затем выполнить (программно) поиск/замещение внутри этого слова (при этом нет успеха).

Причина использования макроса Excel заключается в том, что заменяемый текст берется из некоторых ячеек Excel.

Спасибо за любую помощь Мариано

Sub Word_find_replace_attempt_from_Excel() 

    Set WordApp = CreateObject("Word.Application") 
    WordApp.Visible = True 
    Set WordDoc = WordApp.Documents.Open("C:\Test.doc") 'it exists already 
    With WordDoc 
     Find.Execute _ 
      FindText:="a", _ 
      ReplaceWith:="b", _ 
      Replace:=wdReplaceAll 
    End with 

End Sub

+0

Этот ответ показывает, как это сделать: [http://stackoverflow.com/a/13817645/6481438](http://stackoverflow.com/a/13817645/6481438) – GCSDC

ответ

1

Вам не нужно устанавливать referenece в MS Word, но убедитесь, что объявить consts для любого слова Перечисления MS, которые вы используете ,

Sub Word_find_replace_attempt_from_Excel() 
    Const wdReplaceAll = 2 

    Set WordApp = CreateObject("Word.Application") 
    WordApp.Visible = True 

    Set WordDoc = WordApp.Documents.Open("C:\Test.doc") 
    With WordDoc.Content.Find 
     .Execute FindText:="a", ReplaceWith:="b", _ 
       Format:=True, Replace:=wdReplaceAll, Forward:=True 
    End With 

End Sub 
+0

Благодаря мильон дорогой Томас! Вы никогда не узнаете, как я провел два дня в Googling, прежде чем идти вперед, чтобы спросить. Ваш ответ прямо на месте! :) –

Смежные вопросы