Создать отчет в Word из Excel
Модератор: Naeel Maqsudov
FileName = Application.GetOpenFilename(filefilter:="Документы MSWord (*.doc), *.doc", Title:="Выберите файл шаблона", MultiSelect:=False)
If FileName = RTrim(LTrim("False")) Then
MsgBox "Необходимо выбрать файл!"
Exit Sub
End If
WApp.Visible = True
Set ActDoc = WApp.dOCUMENTS(1).Open(FileName)
До этого места работает - а дальше начинаю манипулировать документом и все
For i = 1 To ActDoc.Table(1).Rows.Count - 3
ActDoc.Tables(1).Rows(3).Delete
Next
Документ открыла а дальше не видны методы и объекты Worda. На любые попытки обратиться к объектам документа Word Excel выдает ошибку
If FileName = RTrim(LTrim("False")) Then
MsgBox "Необходимо выбрать файл!"
Exit Sub
End If
WApp.Visible = True
Set ActDoc = WApp.dOCUMENTS(1).Open(FileName)
До этого места работает - а дальше начинаю манипулировать документом и все
For i = 1 To ActDoc.Table(1).Rows.Count - 3
ActDoc.Tables(1).Rows(3).Delete
Next
Документ открыла а дальше не видны методы и объекты Worda. На любые попытки обратиться к объектам документа Word Excel выдает ошибку
Для того, чтобы были видны свойства и методы, нужно использовать раннее связывание с подключением библиотеки в референсах и декларированием переменных, а так же присваивать объектные ссылки этим переменным. Кроме того, у вас ошибки в коде
Код: Выделить всё
Dim WApp As Word.Application
Dim ActDoc As Word.Document
Filename = Application.GetOpenFilename(filefilter:="Документы MSWord (*.doc), *.doc", Title:="Выберите файл шаблона", MultiSelect:=False)
If Filename = RTrim(LTrim("False")) Then
MsgBox "Необходимо выбрать файл!"
Exit Sub
End If
Set WApp = CreateObject("Word.Application")
WApp.Visible = True
Set ActDoc = WApp.dOCUMENTS.Open(Filename)
For i = 1 To ActDoc.Tables(1).Rows.Count - 3
ActDoc.Tables(1).Rows(3).Delete
Next
Не датите полный код для создаения отчёта в ВОРд из Эксель в формате RTFbi-lya писал(а):Для того, чтобы были видны свойства и методы, нужно использовать раннее связывание с подключением библиотеки в референсах и декларированием переменных, а так же присваивать объектные ссылки этим переменным. Кроме того, у вас ошибки в кодеКод: Выделить всё
Dim WApp As Word.Application Dim ActDoc As Word.Document Filename = Application.GetOpenFilename(filefilter:="Документы MSWord (*.doc), *.doc", Title:="Выберите файл шаблона", MultiSelect:=False) If Filename = RTrim(LTrim("False")) Then MsgBox "Необходимо выбрать файл!" Exit Sub End If Set WApp = CreateObject("Word.Application") WApp.Visible = True Set ActDoc = WApp.dOCUMENTS.Open(Filename) For i = 1 To ActDoc.Tables(1).Rows.Count - 3 ActDoc.Tables(1).Rows(3).Delete Next
C уважением..
Что вы имеете ввиду под
seergy писал(а):полный код для создаения отчёта в ВОРд из Эксель
Есть иакрос котрый вставляет в ворд выдел диапозон, ячеек в эксель. Однако он вставляется как книга (типа спец вставки). Можно открыть и пересчитать мои расчётыbi-lya писал(а):Что вы имеете ввиду под
- это сложный расчёт . А если вставит в ворд в формате RTF, то никто ничего не изменит - останутся только принимаемые мной проектные решения...
С уважением...
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте seergy.
А еще можно создать файл в формате PDF, и тогда уж точно, сложно будет что то изменить. И надо то всего, установить виртуальный принтер (например dopdf.exe), и при отправке задания печати на него, будет создан документ PDF, изменить который сложнее чем RTF.
Евгений.
А еще можно создать файл в формате PDF, и тогда уж точно, сложно будет что то изменить. И надо то всего, установить виртуальный принтер (например dopdf.exe), и при отправке задания печати на него, будет создан документ PDF, изменить который сложнее чем RTF.
Евгений.
Знаю. Мне нужна таблица в ворде...
пытаюсь сделать отчет как описано в этой теме но столкнулся с такой проблемой:
из екселя запускается ворд и в нем необходимо произвести поиск и замену например текста {FIO} на "иванов иван иванович" но код както странно отрабатывает ищет текст для замены но не меняет егоб где ощибка подскажите
из екселя запускается ворд и в нем необходимо произвести поиск и замену например текста {FIO} на "иванов иван иванович" но код както странно отрабатывает ищет текст для замены но не меняет егоб где ощибка подскажите
Sub zz()
Filename = Application.GetOpenFilename(filefilter:="Документы MSWord (*.doc), *.doc", Title:="Выберите файл шаблона", MultiSelect:=False)
If Filename = RTrim(LTrim("False")) Then
MsgBox "Необходимо выбрать файл!"
Exit Sub
End If
Set WApp = CreateObject("Word.Application")
Set ActDoc = WApp.dOCUMENTS.Open(Filename)
ActDoc.ActiveWindow.Selection.Find.Text = "{FIO}"
ActDoc.ActiveWindow.Selection.Find.Replacement.Text = "Ианов"
ActDoc.ActiveWindow.Selection.Find.Forward = True
ActDoc.ActiveWindow.Selection.Find.Wrap = wdFindAsk
ActDoc.ActiveWindow.Selection.Find.Execute Replace:=wdReplaceAll
WApp.Visible = True
End Sub
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте zedby.
Ваш код вполне работоспособный, но для его выполнения, библиотека Microsoft.Word, должна быть подключена в проекте Excel.
Евгений.
Ваш код вполне работоспособный, но для его выполнения, библиотека Microsoft.Word, должна быть подключена в проекте Excel.
Евгений.
Дамы и господа.
А нельзя просто копи пастом воспользоваться?
Типа
А нельзя просто копи пастом воспользоваться?
Типа
Код: Выделить всё
Windows("Microsoft Excel").Activate
Selection.Copy
Windows("Microsoft Word").Activate
Paste