Страница 1 из 10

Создать отчет в Word из Excel

Добавлено: 05 мар 2008, 12:28
Wine
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 выдает ошибку

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 02:16
bi-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

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 13:13
seergy
bi-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
Не датите полный код для создаения отчёта в ВОРд из Эксель в формате RTF
C уважением..

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 14:19
bi-lya
Что вы имеете ввиду под
seergy писал(а):полный код для создаения отчёта в ВОРд из Эксель

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 17:55
seergy
bi-lya писал(а):Что вы имеете ввиду под
Есть иакрос котрый вставляет в ворд выдел диапозон, ячеек в эксель. Однако он вставляется как книга (типа спец вставки). Можно открыть и пересчитать мои расчёты
- это сложный расчёт . А если вставит в ворд в формате RTF, то никто ничего не изменит - останутся только принимаемые мной проектные решения...
С уважением...

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 22:35
Teslenko_EA
Здравствуйте seergy.
А еще можно создать файл в формате PDF, и тогда уж точно, сложно будет что то изменить. И надо то всего, установить виртуальный принтер (например dopdf.exe), и при отправке задания печати на него, будет создан документ PDF, изменить который сложнее чем RTF.
Евгений.

Re: Создать отчет в Word из Excel

Добавлено: 06 мар 2008, 23:01
seergy
Знаю. Мне нужна таблица в ворде...

Re: Создать отчет в Word из Excel

Добавлено: 11 мар 2008, 22:22
zedby
пытаюсь сделать отчет как описано в этой теме но столкнулся с такой проблемой:
из екселя запускается ворд и в нем необходимо произвести поиск и замену например текста {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

Re: Создать отчет в Word из Excel

Добавлено: 12 мар 2008, 00:50
Teslenko_EA
Здравствуйте zedby.
Ваш код вполне работоспособный, но для его выполнения, библиотека Microsoft.Word, должна быть подключена в проекте Excel.
Евгений.

Re: Создать отчет в Word из Excel

Добавлено: 18 мар 2008, 12:44
pilligrim
Дамы и господа.
А нельзя просто копи пастом воспользоваться?
Типа

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

Windows("Microsoft Excel").Activate
Selection.Copy
Windows("Microsoft Word").Activate
Paste