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

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

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

Ответить
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

14 апр 2008, 11:31

Скорее так :
Dim objWord As Object
' Создание Doc
Sub CreateDoc()
Set objWord = CreateObject("Word.Application")
If objWord.Documents.Count = 0 Then objWord.Documents.Add DocumentType:=wdNewBlankDocument
objWord.Visible = True
Worksheets("для ворд").Visible = True
Worksheets("для ворд").Columns("A:A").SpecialCells(xlCellTypeConstants, 3).Copy
objWord.Selection.Paste
Application.CutCopyMode = False
Worksheets("для ворд").Visible = False
End Sub
- и было мне счастье...
P.S. Со всем не усматрел
А - Call wdDoc.Range.PasteAndFormat(wdFormatPlainText)
не возможно использовать или вставлять текст с опред. форматом...??
с уважением...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

14 апр 2008, 11:38

seergy,
Скорее так :
ну, это уж Вам виднее :rolleyes:
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

14 апр 2008, 12:21

А - Call wdDoc.Range.PasteAndFormat(wdFormatPlainText)
не возможно использовать или вставлять текст с опред. форматом...??
с уважением...
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

14 апр 2008, 12:26

Использоваь можно, а про определенный формат мы уже говорили, зачем повторяться.
Форматирование Excel НЕ сохранится, форматировать текст прийдется в самом Word.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

14 апр 2008, 13:19

Да виноват благодарю...........
С уважением....
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

22 апр 2008, 11:11

Виктор не могу справиться с ошибкой:
Run-time error "1004" Данная команда не применима для несвязанных диапозонов
Хотя делал как в вашем примере, только вместо Worksheets("для ворд"), вставляю свои листы и диапозоны. Проверил Referens в VBA вроде всё как в вашем примере....
См. Принскрин
С уважением..
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

22 апр 2008, 11:39

Вы знаете, по скриншоту трудно понять, что там у Вас происходит. Попробуйте подвести курсор к месту останова и посмотреть, что пишется во всплывающих окнах. Может что и прояснится.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

22 апр 2008, 17:33

Разобрался и сам оптимизировал (см. пример выше коды в файле Semple 1)
Вместо
Worksheets("Отчёт сварка ").Columns("A:A").SpecialCells(xlCellTypeConstants, 3).Copy
objWord.Selection.PasteAndFormat (wdFormatPlainText)
Выбрал
Worksheets("Отчёт сварка ").Columns("A:A").SpecialCells(xlCellTypeFormulas, 6).Copy
objWord.Selection.PasteAndFormat (wdFormatPlainText)
Код заработал...
Но PasteAndFormat (wdFormatPlainText) - не работает - вставляет как в ворд как таблицу, а не RTF - странно и ошибок нет...!!!?
С уважением...
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

22 апр 2008, 22:51

Это говорит лишь о том, что для решения Вашего вопроса Вы предоставляете одни данные, а в реальных условиях используете другие.
Справка Excel:
xlCellTypeConstants. Ячейки, содержащие константы
xlCellTypeFormulas. Ячейки, содержащие формулы
У меня прекрасно работает (как и работала) строка

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

Worksheets("Отчёт сварка ").Columns("A:A").SpecialCells(xlCellTypeConstants , 3).Copy
а для вставки данных как текст, все-таки попробуйте применить ранее предложенный вариант.
***
если можно, небольшой совет, не применяйте в именах листов пробелы. Лучше пишите так Отчёт_сварка. Это не прихоть, просто может отозваться самым неожиданным образом, в самом неожиданном месте.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
seergy
Сообщения: 109
Зарегистрирован: 25 ноя 2007, 21:31

23 апр 2008, 07:53

Спасибо большое

Да. При слитном написании имён листов или через "_" в коде
SpecialCells(xlCellTypeVisible). видимые ячейки
xlCellTypeConstants. Ячейки, содержащие константы
xlCellTypeFormulas. Ячейки, содержащие формулы
Кода работают по разному.
Интересно .... почему так...наверное существуют жёсткие правила синтекса при написании програмного кода, кот. нужно учитывать...
С уважением
Ответить