vba замена из excel в word. помогите плиз!

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
taciturn
Сообщения: 4
Зарегистрирован: 27 май 2010, 12:17

Всех приветствую
Есть такой код, который по идее должен заменять текст из ВОРДа, ячейкой из ЭКСЕЛя. Все почти работает, кроме того, что прога не вставляет в ВОРД нужную ячейку.
Подскажите очень прошу! Курсовую надо сдавать срочно :(

vba excel

Sub lol()

On Error Resume Next
ThisWorkbook.VBProject.References.AddFromFile Application.Path & Application.PathSeparator & "MSWORD.OLB" <- подрубаем Вордовскую библиотеку


Dim appWD As Object
Dim wdDoc As Object
Set appWD = CreateObject("Word.Application")
Set wdDoc = appWD.Documents.Open("ПУТЬ К ДОКУ") <- открываем нужный док
appWD.Visible = True <- делаем видимым ворд


appWD.Activate
appWD.Selection.Find.ClearFormatting
appWD.Selection.Find.Replacement.ClearFormatting
With appWD.Selection.Find
.Text = "ОЛОЛО" <- Ищет в Ворде текст,который нужно заменить.

.Worksheets(1).Activate
Replacement = Worksheets(1).Cells.Range("A1").Value
<- а вот тут какая-то ошибка. Должна браться ячейка из Экселя для замены вместо "ОЛОЛО"

End With

appWD.Selection.Find.Execute Replace:=wdReplaceAll

End Sub
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

taciturn
вот это:

Код: Выделить всё

Replacement =
замени на это:

Код: Выделить всё

.Replacement.Text = 
taciturn
Сообщения: 4
Зарегистрирован: 27 май 2010, 12:17

спасибо огромнейшее!!!!!
taciturn
Сообщения: 4
Зарегистрирован: 27 май 2010, 12:17

возникла новая проблема...

В этом месте

appWD.Activate
appWD.Selection.Find.ClearFormatting
appWD.Selection.Find.Replacement.ClearFormatting
With appWD.Selection.Find
.Text = "ОЛОЛО"

.Worksheets(1).Activate
.Replacement.Text = Worksheets(1).Cells.Range("A1").Value

End With




надо добавить


.Text = "ОЛОЛО2"

.Worksheets(1).Activate
.Replacement.Text = Worksheets(1).Cells.Range("G4").Value

т.е. чтобы разом менял один текст на одну ячейку, и такой-то текст на другую ячейку.. подскажите пожалуйста как организовать? если просто вставить после окончания первой замены, то он выполняет только последнюю замену в ворде.
taciturn
Сообщения: 4
Зарегистрирован: 27 май 2010, 12:17

сам додумался :)


appWD.Activate
appWD.Selection.Find.ClearFormatting
appWD.Selection.Find.Replacement.ClearFormatting
With appWD.Selection.Find
.Text = "пер1"
.Worksheets(1).Activate
.Replacement.Text = Worksheets(1).Cells.Range("D25").Value
appWD.Selection.Find.Execute Replace:=wdReplaceAll

.Text = "пер2"
.Worksheets(1).Activate
.Replacement.Text = Worksheets(1).Cells.Range("D26").Value
appWD.Selection.Find.Execute Replace:=wdReplaceAll



.Text = "пер3"
.Worksheets(1).Activate
.Replacement.Text = Worksheets(1).Cells.Range("D27").Value
appWD.Selection.Find.Execute Replace:=wdReplaceAll
Ответить