|
Перебрать открытые окна Exel | ☑ | ||
|---|---|---|---|---|
|
0
xenos
13.09.12
✎
11:51
|
Есть несколько открытых файлов Exel(не сохраненные), нужно получить из них данные в 1С.
Как к ним обратится? |
|||
|
1
МихаилМ
13.09.12
✎
11:59
|
естественно как к колекции.
к какой колекции, Вам подскажет запись макроса |
|||
|
2
xenos
13.09.12
✎
12:01
|
(1) Запись макроса учете переход между разными окнами? Сомневаюсь.
|
|||
|
3
dk
13.09.12
✎
12:08
|
Если они в пределах 1 application, то через коллекцию WorkBooks
А вот если application разные ..., то надо придумать как все application перебрать |
|||
|
4
МихаилМ
13.09.12
✎
12:11
|
(3)
для этого уже лет 15 есть wmi |
|||
|
5
dk
13.09.12
✎
12:13
|
wmi вернет список процессов, а вот как к этому процессу цепануться по OLE - хз
|
|||
|
6
xenos
13.09.12
✎
12:15
|
В visual basic
Работает: Sub xxx() Dim wbBook As Workbook For Each wbBook In Workbooks MsgBox (wbBook.Name) Next wbBook End Sub |
|||
|
7
dk
13.09.12
✎
12:18
|
|
|||
|
8
xenos
13.09.12
✎
12:23
|
(7) Спасибо большое, а то я вместо "ПолучитьCOMобъект(,"Excel.Application");" использовал "Новый COMОбъект("Excel.Application");"
Может кому понадобится Процедура КнопкаВыполнитьНажатие(Кнопка) // Вставить содержимое обработчика. ExcelПриложение = ПолучитьCOMобъект(,"Excel.Application"); Для каждого Книга из ExcelПриложение.WorkBooks Цикл ExcelЛист = Книга.Sheets(1); Сообщить("зхз"+ СокрЛП(ExcelЛист.Cells(1, 1).Value)); КонецЦикла; КонецПроцедуры |
|||
|
9
dk
13.09.12
✎
12:28
|
но это внутри 1 аппликейшена, если разные (например несколько раз запусти пуск - выполнить - Excel и пооткрывай там файлы) то скорее всего облом будет
|
|||
|
10
xenos
13.09.12
✎
12:31
|
(9) Мне из паруса нужно данные выгрузить. А он сам открывает несколько окон Exel
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |