Получить список именованных ячеек в excel через ADODB

smithsv
Дата: 20.01.2012 09:26:51
Добрый день, есть ли возможность получить имена и значение именованных ячеек в Excel при подключению к файлу через ADODB
alvk
Дата: 20.01.2012 09:39:06
smithsv,

ну так безусловно, только этим и пользуюсь при экспорте из Акцесс.
smithsv
Дата: 20.01.2012 09:48:07
alvk
smithsv,

ну так безусловно, только этим и пользуюсь при экспорте из Акцесс.


наверно я не точно задал вопрос, уточню: подключаюсь vb скриптом к экселю через ADODB для экспорта данных из него. Вот, и хотелось бы знать каким образом перебрать эти ячейки
alvk
Дата: 20.01.2012 10:08:40
smithsv
подключаюсь vb скриптом


VBA?
smithsv
Дата: 20.01.2012 10:17:30
alvk
smithsv
подключаюсь vb скриптом


VBA?

ага
alvk
Дата: 20.01.2012 10:31:15
smithsv,

например так:
xlSheet.Range("telo").CopyFromRecordset rst
qwerty112
Дата: 20.01.2012 11:40:38
alvk
smithsv,

например так:
xlSheet.Range("telo").CopyFromRecordset rst

дык, автор, экспортом ИЗ Экселя бредит, а не наоборот

ТС,

"перебрать эти ячейки" - это не через АДО делается, - через автоматизацию Экселя - ищите по форуму по Excel.Application createobject

а через адо - можно запросом "вытянуть" всё со страницы в рекордсет, и уже "перебирать" строки/поля рекордсета

зы
и вроде как, какой-то трабл имеется в связке АДО-Эксель с незакрывающимся Экселем
Старый ворчун
Дата: 20.01.2012 12:30:16
qwerty112
"перебрать эти ячейки" - это не через АДО делается, - через автоматизацию Экселя - ищите по форуму по Excel.Application createobject

имена именованных диапазонов, как и имена листов, можно получить лишь с помощью ADODB, открыв рекордсет:
Set rs = cn.OpenSchema(adSchemaTables)

потом перемещаясь по записям рекордсета получать имена:
strName = rs.Fields("TABLE_NAME").Value
Старый ворчун
Дата: 20.01.2012 12:31:40
qwerty112
а через адо - можно запросом "вытянуть" всё со страницы в рекордсет, и уже "перебирать" строки/поля рекордсета

запросом можно "вытянуть" значения конкретного именованного диапазона.
smithsv
Дата: 20.01.2012 14:39:15
Старый ворчун
qwerty112
"перебрать эти ячейки" - это не через АДО делается, - через автоматизацию Экселя - ищите по форуму по Excel.Application createobject

имена именованных диапазонов, как и имена листов, можно получить лишь с помощью ADODB, открыв рекордсет:
Set rs = cn.OpenSchema(adSchemaTables)

потом перемещаясь по записям рекордсета получать имена:
strName = rs.Fields("TABLE_NAME").Value

вот пошли по рекордсету:
Set rs = objConn.OpenSchema(adSchemaTables)
  rs.MoveFirst

While Not rs.EOF
  MsgBox rs.Fields("TABLE_NAME").Value
  
rs.MoveNext
Wend

но возвращает только имена листов, а именнованых ячеек нет, хотя они есть на первом листе