Имя: Пароль:
1C
 
v8: Почему не коннектится к открытому листу эксель? {решен}
0 Гений 1С
 
гуру
24.11.08
17:54
Эксель = Новый COMОбъект("Excel.Application");
   Лист = Эксель.ActiveSheet;

Возвращает Лист = неопределено, хотя эксель открыт.
по ходу она создает новое приложение.
Это можно как-то побороть?
1 hhhh
 
24.11.08
17:55
(0) 100% новое
2 DancingShadow
 
24.11.08
17:56
а книгу дядя Билли создаст?
3 ilya_i
 
24.11.08
18:14
наверно сначала надо обратиться к книге, а уж потом к листу
4 Гений 1С
 
гуру
24.11.08
18:51
Воркбук тоже пустой
5 Господин ПЖ
 
24.11.08
18:56
фиксин опять поразил всех...
6 ВторНик
 
24.11.08
20:12
(5) + смотрите завтра на Инфостарте пишим в эксель не открывая книгу!
7 Гений 1С
 
гуру
24.11.08
20:16
(5) ты знаешь, как подключиться к открытому эксель?
8 learn_
 
24.11.08
20:26
нужно проверить чтоб было "Лист 1"
9 H A D G E H O G s
 
24.11.08
20:28
(7) Нельзя.
10 vde69
 
24.11.08
20:30
(9) можно, в режиме только для чтения. пусть фиксин ищет
11 vde69
 
24.11.08
20:31
(10)+ или если для фвйла установлен режим раздельного редактирования
12 H A D G E H O G s
 
24.11.08
20:54
(10) Через ПодключитьCOMОбъект() ?
13 vde69
 
24.11.08
21:00
(12) ну точно знаю, что можно через ADO, думаю и серез ком можно
14 Гений 1С
 
гуру
25.11.08
09:20
(12) такой функци нет...
Мда, опять никто не знает
15 Мой ник
 
25.11.08
09:23
(14) Ты разберись самостоятельно и выдай народу, а то мучаются всех, неведают )
16 vde69
 
25.11.08
09:29
(15) не ведись на него, я ему ответ уже дал, а он все долбиться!

1. ADO
2. если для файла установлен режим раздельного редактирования (это в самом файле а не в подключении)

фикс как всегда просто "не замечает" то чего ему не нравиться
17 H A D G E H O G s
 
25.11.08
09:33
(16) ADO - это не "путь самурая"
"разделенный режим" - это я так понимаю, создать новый процесс excel.exe (при сохранении старого процесса) в COM подключении и в нем откррыть файл? Если да - это не для "реальных пацанов" типа Сереги.
18 vde69
 
25.11.08
09:40
(17) в екселе
"сервис/доступ к книге" галка "разрешить изменять файл нескольким пользователям"
19 zbv
 
25.11.08
09:41
через ПолучитьCOMОбъект разве не взлетит?
20 H A D G E H O G s
 
25.11.08
09:44
(18) Это я знаю.. Читайте внимательно, что вы предлагаете, и что требует Гений. Ответ скорее всего в (19), но тестить влом.
21 Гений 1С
 
гуру
25.11.08
09:50
(19) Да, точно, просто ХанжХок неправильно дал название функции в (12).
Взе взлетело. Аминь.

//Подключаемся к текущему листу
//Эксель = Новый COMОбъект("Excel.Application");
Эксель = ПолучитьCOMОбъект(, "Excel.Application");
Лист = Эксель.ActiveSheet;
Инд = 2;
Пока истина Цикл
   формула = Лист.cells(Инд, 2).Formula;
   Если СокрЛП(формула) = "" Тогда
       Прервать;
   КонецЕсли;
   Сообщить(""+инд + Символы.Таб + Формула);
   Инд = Инд + 1;
   ОбработкаПрерыванияПользователя();
КонецЦикла;

Всем спасибо.
22 zbv
 
25.11.08
09:50
(20) поидее должно работать:

"П = ПолучитьCOMОбъект( , "Excel.Application");
Переменная П получит значение типа COMОбъект, соответствующее активному приложению MS Excel, если таковое имелось, или будет вызвано исключение, если активных экземпляров MS Excel не было" (с) СП
23 vde69
 
25.11.08
09:51
(20) ну не знаю, с фиксой всегда непонятки какие то...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.