Замена текста в документе Word на значения из книги ексель
Модератор: Naeel Maqsudov
Добрый день.
Как можно заменить в целом документе Word текст типа
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)
и т. д.
Как можно заменить в целом документе Word текст типа
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)
и т. д.
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
jaroslav
привет, в др. форуме ты спрашивал:
Как заменить жирний текст "тис. грн." на обычний текст "тис. грн."
Надо добавить в код:
Иначе может быть ситуация, что текст "тис. грн." будет меняться на др. текст.
Если нужна замена по всему документу (основная часть - maindocument), то используй этот код:
Просто меня забанили в том форуме за плохое поведение.
привет, в др. форуме ты спрашивал:
Как заменить жирний текст "тис. грн." на обычний текст "тис. грн."
Надо добавить в код:
Код: Выделить всё
.Find.Replacement.Text = ""
Если нужна замена по всему документу (основная часть - maindocument), то используй этот код:
Код: Выделить всё
Sub m_1()
With ActiveDocument.Range.Find
.Text = "тис. грн."
.Replacement.Font.Bold = False
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Sub
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
По поводу этой темы нужны конкретные примеры, т.к. тяжело понять, что надо сделать.
Т.е. в документе Word есть текст:
Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
Его надо заменить на значение из Excel, находящего в Excel: Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)?
Завтра гляну на работе.
Т.е. в документе Word есть текст:
Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
Его надо заменить на значение из Excel, находящего в Excel: Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)?
Завтра гляну на работе.
Busine2009! Спасибо за ответ в теме "Как заменить жирний текст "тис. грн." на обычний текст "тис. грн."
По поводу темы "Замена текста в документе Word на значения из книги ексель" ты меня правильно понял: в документе Word есть текст:
Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
Его надо заменить на значение из Excel, находящего в Excel: Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
По поводу темы "Замена текста в документе Word на значения из книги ексель" ты меня правильно понял: в документе Word есть текст:
Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
Его надо заменить на значение из Excel, находящего в Excel: Workbooks("Книга1").Sheets("Лист1").Cells(2, 3)
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
jaroslav
забыл пример взять на работу. Завтра гляну - в выходные.
забыл пример взять на работу. Завтра гляну - в выходные.
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
jaroslav
нет, не знаю как делать. Вот есть код, может быть его можно как-то переделать:
Вот эту часть:
надо скопировать и вставить из Word. Как это сделать, я не знаю.
нет, не знаю как делать. Вот есть код, может быть его можно как-то переделать:
Код: Выделить всё
Sub m_1()
Dim oExcel As Object
Dim oWorkbook As Object
Dim vАдресЯчейки As String
vАдресЯчейки = Selection.Text
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Open "E:\_Рабочий стол\Книга1.xls"
Selection.Text = oExcel.Workbooks("Книга1.xls").Sheets("Лист1").Cells(2, 3).Value
oExcel.Workbooks("Книга1.xls").Close
End Sub
Код: Выделить всё
Workbooks("Книга1.xls").Sheets("Лист1").Cells(2, 3)
Нашел метод замены через ексель.
Только есть одна проблема: текст: "Лист1!C39" заменяется на значения из книги ексель только 1 раз. Потом ворд в поле Найти ищет это значения, а не .Text = "<9_9*9_9>".
Подскажите, пожалуйста где я ошибся.
Код: Выделить всё
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
Подскажите, пожалуйста где я ошибся.
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
jaroslav
выложи полностью код, а то ты что-то умное придумал, тяжело сообразить.
выложи полностью код, а то ты что-то умное придумал, тяжело сообразить.
Вот решение вопроса:
Код: Выделить всё
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