1

Тема: Замена текста на значения из книги ексель

Добрый день.
Как можно заменить в целом документе текст типа Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
Workbooks("Книга1").Sheets("Лист2").Cells(5, 7)
Workbooks("Книга1").Sheets("Лист3").Cells(1, 2)
и т. д.
на значения из книги ексель:
Workbooks("Книга1").Sheets("Лист1").Cells(2, 3) (например, 10,2)
Workbooks("Книга1").Sheets("Лист2").Cells(5, 7) (например, -5680,0)
Workbooks("Книга1").Sheets("Лист3").Cells(1, 2) (например, 0,0)
и т. д.

2

Re: Замена текста на значения из книги ексель

Нашел метод замены через ексель.

With Word.application
With .Selection.Find
    .ClearFormatting
    .Text = "<9_9*9_9>" ' между 9_9 стоит, например, Лист1!C39
    .Replacement.Text = ""
    .MatchWildcards = True
    .Forward = True
    .Wrap = wdFindContinue
End With
While .Selection.Find.Execute
    kk = Replace(.Selection.Text, "9_9", "")
    Sheets("Лист1").Range("A1").Formula = "=" & kk
    .Selection.Find.Replacement.Text = Workbooks(s3).Sheets(1).Range("A1") ' где s3 - имя активной книги ексель
    .Selection.Find.Execute Replace:=1
Wend
End With

Только есть одна проблема: текст: "Лист1!C39" заменяется на значения из книги ексель только 1 раз. Потом ворд в поле Найти ищет это значения, а не .Text = "<9_9*9_9>".
Подскажите, пожалуйста где я ошибся.

3

Re: Замена текста на значения из книги ексель

Вот решения вопроса:

With Word.application
With .Selection.Find
    .ClearFormatting
    .Text = "<9_9*9_9>" ' между 9_9 стоит, например, Лист1!C39
    .Replacement.Text = ""
    .MatchWildcards = True
    .Forward = True
    .Wrap = wdFindContinue
While .Execute
    .Parent.Text = Replace(.Parent.Text, "9_9", "")
    Sheets("Лист1").Range("A1").Formula = "=" & .Parent.Text
    .Parent.Text =  Replace(.Parent.Text, .Parent.Text, Workbooks(s3).Sheets(1).Range("A1"))  ' где s3 - имя активной книги ексель
Wend
End With
End With