Flasher, я не уверен что верно понял задачу.
Нужно делать выборку по имени колонки? Или нужно делать вывод по имени колонки?
Сделал таблицу в три столбца, в первой строке листа - названия колонок: user, Tel, Net.
В коде выбираем строки для которых число телефонных розеток равно 3:
Option Explicit
Dim oDAO, oDB
Set oDAO = CreateObject("DAO.DBEngine.36")
Set oDB = oDAO.OpenDatabase("tab1.xls", False, True, "Excel 8.0;HDR=Yes;")
Dim strSQL, oRS
strSQL = "SELECT * FROM [Лист1$] WHERE Tel = 3"
Set oRS = oDB.OpenRecordset(strSQL)
Do While Not oRS.EOF
wscript.echo "Группа пользователей: " & oRs("user")
wscript.echo "Кол-во телефонных розеток: " & oRs("Tel")
wscript.echo "Кол-во езернет-розеток: " & oRs("Net")
oRS.MoveNext
Loop
oRS.Close
oDB.Close
Set oRS = Nothing
Set oDB = Nothing
Set oDAO = Nothing
Это для случая когда названия колонок в первой строке листа, для диапазонов листа не пробовал.
По поводу получения адресов ячеек в стиле экселя - сильно сомневаюсь в такой возможности из коробки. Всё таки DAO предназначено для работы с БД, а там номера строки в экселевском представлении нет. Хотя, если не делать выборку, и не использовать сортировку - при переборе никто не мешает посчитать номер строки для конкретного набора данных. Но нужно быть на 100% уверенным, что DAO прочтёт строки именно в том порядке который имеется в листе. Это было бы логично, но я не уверен что всё именно так и есть
. Номер колонки(для стиля R1C1) можно получить из свойств поля - oRs("user").OrdinalPosition + 1(нумерация полей в рекордсете от 0 идёт). Другие св-ва рекордсета можно посмотреть в студийном отладчике(я пользуюсь 2008-ой студией для таких случаев).
По ошибке - MDAC установлен? Какой именно код вызывает ошибку?
P.S. кажется я был немного невнимателен - тема плавно с DAO на ADO(а я всё про DAO, да про DAO
)... Собственно по какому объекту сейчас обсуждение идёт? 