|
как удалить Excel-макрос из 1С ? |
☑ |
0
Radio_1C
28.12.06
✎
09:25
|
в 1С-ке пишу на VB и не получается удалить макрос из Excel-евского файла.
|
|
1
smaharbA
28.12.06
✎
09:34
|
Доверие и безопасность
|
|
2
smaharbA
28.12.06
✎
09:34
|
А вообщето - зачем ?
|
|
3
Radio_1C
28.12.06
✎
09:40
|
(1) с доверием нормально.
принцип такой. я открываю Excel, добавляю туда макрос, запускаю его, забираю данные после макроса, теперь надо удалить этот макрос, и добавить такой же но с измененными строками и так далее пока цикл не кончится.
еще предложение. а может подскажете как в добавленном макресе изменить код макроса?
|
|
4
smaharbA
28.12.06
✎
10:10
|
(3) Дурной метод.
Что такого в макросе может быть чего без него из 1С не сделать ?
...
А удалять так примерно -
Модули=Книга.VBProject.VBComponents;
Для к=-Модули.Count По -1 Цикл
Модуль = Модули.Item(-к);
Если Модуль.Type <> 100 Тогда
Модули.Remove(Модуль);
Иначе
Модуль.CodeModule.DeleteLines(1, Модуль.CodeModule.CountOfLines);
КонецЕсли;
КонецЦикла;
Но чую - мудришь черезчур...
|
|
5
Radio_1C
28.12.06
✎
11:10
|
спасибо
|
|
6
GrayT
28.12.06
✎
11:16
|
(4)Порой проще там написать, чем через олю извращаться. А еще подобный алгоритм был у меня реализован в МД_визио - сперва один макрос отрабатывал, а перед сохранением екселевского файла замещался на другой (программно сгенерированный)
|
|
7
Radio_1C
28.12.06
✎
11:25
|
ну дело в том чтобы программно не составлять 1000 макросов, я их заменяю один другим после выполнения и все ок. вот.
|
|
8
Radio_1C
28.12.06
✎
12:22
|
а кто знает как тем же кодом 1С удалить из Excel'я лист с именем "ТабЧасть" ?
|
|
9
smaharbA
28.12.06
✎
12:59
|
(8) Я
|
|
10
Radio_1C
28.12.06
✎
13:26
|
подскажи а?
|
|
11
Radio_1C
28.12.06
✎
13:27
|
(10) дело в том что если макрос выполнять в экселе то выходит сообщение о просьбе нажать Ок для удаления данного листа. а когда программным путем, то ни сообщения не выходит, ни удаляет.
|
|
13
smaharbA
28.12.06
✎
15:16
|
(11)
Ексель=СоздатьОбъект("Excel.Application");
Книга=Ексель.WorkBooks.Open(Файл);
Книга.WorkSheets("ТабЧасть").Delete();
|
|