|
|
|
Помогите с VBA ₽ |
☑ | ||
|---|---|---|---|---|
|
0
Vacoola
04.12.07
✎
12:14
|
Как создать ком объект Word.Aplication и открыть в нем файл. Сложность в том что файл находится не на диске а в объекте 1с типа ДвоичныеДанные, а также в том что отурытий файл должен быть новый (не сохранен на диске)
Вот код. его надо изменить таким образом чтобы открытиф файл был новый а не уже сохраненный: БинареныйФайл = Шаблон.Получить(); ПутьКВременномуФайлу = КаталогВременныхФайлов()+"ТемпДок.doc"; БинареныйФайл.Записать(ПутьКВременномуФайлу); Попытка Word = новый COMОбъект("Word.Application"); Doc = Word.Documents; Doc.Open(ПутьКВременномуФайлу); Word.Application.Visible=Истина; Исключение Сообщить("Проблемы с Microsoft Office "+ОписаниеОшибки()); Возврат; КонецПопытки; |
|||
|
1
dk
04.12.07
✎
12:23
|
1) Копируй усе
2) Закрывай старый файл 3) Создавай новый 4) Вставляй из буфера |
|||
|
2
San1
04.12.07
✎
12:23
|
Открой существующий документ, включи запись макроса, создай новый и скопируй все в него. Получится пимерно такой код.
Range("A1:D4").Select Range("D4").Activate Selection.Copy Workbooks.Add ActiveSheet.Paste Ссылку на книгу, кт добавили (Workbooks.Add) можно будет использовать для своих замыслов, мне кажется. |
|||
|
3
Vacoola
04.12.07
✎
12:29
|
а такой вопросик. В общем случае.
Вот я записал макрос , получил код, но синтаксис его отличается от того которій можно использовать в ком объекте. подскажите оптимальный способ найти синтаксис ф- ий пригодный для использования. было б класно сслыку на справочник ф-ий, где есть оба варианта синтаксиса |
|||
|
4
Рэйв
04.12.07
✎
12:36
|
(3)Часто спасает просто простановка двух скобок для функций.
т.е. Selection.Copy записать как Selection.Copy(); |
|||
|
5
Vacoola
04.12.07
✎
12:46
|
Doc.Selection.WholeStory
Doc.Selection.Copy Doc.ActiveWindow.Close Doc.Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdPasteDefault) а как быть с этим ? особенно Doc.Documents.Add DocumentType:=wdNewBlankDocument |
|||
|
6
Рэйв
04.12.07
✎
12:50
|
(5)Я так думаю, что wdNewBlankDocument это что-то вроде константы, определенной через
#define Так что оно вполне может иметь числовой эквивалент. |
|||
|
7
dk
04.12.07
✎
12:55
|
Doc.Selection.WholeStory();
Doc.Selection.Copy(); Doc.ActiveWindow.Close(); // Хотя тут как-то не очень МойДок = Doc.Documents.Add(); МойДок.Selection.Paste(); // ИЛИ Doc.Selection.Paste(); -- Как-то так |
|||
|
8
Vacoola
04.12.07
✎
13:02
|
метод проб и ошибок наш метод
Doc.Selection.WholeStory(); ругается: Поле объекта не обнаружено (Selection) |
|||
|
9
Рэйв
04.12.07
✎
13:06
|
попробуй
Doc.Selection().WholeStory(); |
|||
|
10
dk
04.12.07
✎
13:09
|
я тормоз вместо Doc пиши Word
|
|||
|
11
Vacoola
04.12.07
✎
13:20
|
МойДок = Doc.Documents.Add(); -> Метод объекта не обнаружен (Add)
|
|||
|
12
Vacoola
04.12.07
✎
13:23
|
Word.ActiveWindow.Close(); // Хотя тут как-то не очень
вот , после этой команды ком объект очищается |
|||
|
13
dk
04.12.07
✎
13:50
|
Word = новый COMОбъект("Word.Application");
Док = Word.Documents.Open(ПутьКВременномуФайлу); Word.Visible = Истина; Селек = Word.Selection; Селек.WholeStory(); Селек.Copy(); Док.Close(); Док = Word.Documents.Add(); Селек.Paste(); |
|||
|
14
dk
04.12.07
✎
13:52
|
Док.Close(Ложь); // Можно попробовать если будет вопросы задавать
|
|||
|
15
Vacoola
04.12.07
✎
14:35
|
работает только заменил строку Селек.Paste();
на Word.Selection.Paste(); Остается проблема, файл может быть открыт только для чтения Док.Close(Ложь); не помагает. |
|||
|
16
Vacoola
04.12.07
✎
14:51
|
(15) проблему ридонли файла решил, оказывается. 3 ий параметр ф-и open
Док = Word.Documents.Open(ПутьКВременномуФайлу,,истина); Окончательный вариант выглядит так: Word = новый COMОбъект("Word.Application"); Док = Word.Documents.Open(ПутьКВременномуФайлу,,истина); Селект = Word.Selection; Селект.WholeStory(); Селект.Copy(); Док.Close(); Док = Word.Documents.Add(); Word.Selection.Paste(); Word.Application.Visible=Истина; |
|||
|
17
kla2005
04.12.07
✎
15:36
|
На VBA код выглядит так:
Documents.Add "C:\1.doc", , , True Добавляет документ на основании шаблона, в качестве шаблона можна использовать не только документы dot а также документы doc |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |