Не удалось запросить динамически именованный диапазон на листе Excel с помощью ADO

Предположим, что у меня есть лист Excel с именем Adjustments хранящийся в переменной wksName и на этом листе у меня есть именованный диапазон, указанный ниже, если вы смотрите в Менеджере имен:

 tblData =OFFSET(Adjustments!$A$1,0,0,COUNTA(Adjustments!$A:$A),4) 

Чтобы он расширялся до такого количества строк, как у нас есть данные в столбцах A thru D.

Теперь у меня есть следующий код в модуле VBA:

 Set ExcelCon = CreateObject("ADODB.Connection") Set ExcelRecSet = CreateObject("ADODB.Recordset") ExcelCon.ConnectionString = "Provider='Microsoft.Jet.OLEDB.4.0';" & _ "Data Source='" & ThisWorkbook.FullName & "';" & _ "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'" 'Get the data for the update: ExcelCon.Open ' Get the data from the spreadhseet for the update statement Set ExcelRecSet = ExcelCon.Execute("SELECT * FROM [" & wksName & "$tblData]") 

Когда я пытаюсь запустить этот код, я получаю сообщение об ошибке:

 Run-time error '-2147217865 (80040e37)': The Microsoft Jet database engine could not find the object 'Sheet1$tblData'. Make sure the object exists and that you spell its name and the path name correctly. 

Является ли это ограничением использования ADO – названных диапазонов не может быть динамически определенным – или есть способ, которым я могу заставить это работать?

Благодаря!!

Как указано в комментариях, код, который в конечном итоге работал для меня (для тех из вас, кто может обнаружить, что у вас есть такая же проблема), был чем-то вроде:

 Set ExcelRecSet = ExcelCon.Execute("SELECT * FROM [" & wksName & "$" & _ wks.Range("tblData").Address(0, 0) & "]") 

Это определенно работает, но если бы был способ выбрать диапазон переменных без ссылки на него, как указано выше, я бы хотел посмотреть, как это сделать.

Благодаря!!

  • Ошибка VbScript при попытке подключения к Excel FIle с помощью ADODB.Connection
  • Ошибка открытия набора записей в VBA
  • Как я могу предотвратить дублирование данных Microsoft ACE и JET в VB6 из первой строки в электронной таблице Excel?
  • Чтение номеров с номерами Excel с помощью oleDb
  • Импорт Excel 2013 в vs, Microsoft ACE.OLEDB.12.0 не зарегистрирован на локальной машине
  • Импортируйте лист excel с помощью jet.oledb.4.0, установив первую строку как имя столбца
  • Как SQL-запрос этой таблицы excel с акцентированными именами столбцов в заголовке?
  • Чтение сводной таблицы с c #
  • JET / ACE открывает книгу в другой версии Excel
  • Запрос ADO листа с длинными именами в ошибке Jet
  • Проблема с использованием OleDbDataAdapter для извлечения данных из листа Excel
  • Interesting Posts

    excel косвенная функция для чтения дат и возврата динамических значений

    Чтение текста из .txt-файла в другой рабочий лист excel

    Доступ к сохраненному файлу sharepoint из надстройки Excel VSTO

    Вычисление суммы

    Невозможно получить ответ от веб-службы через запрос SOAP с использованием VBA

    Как экспортировать определенные значения из TXT в Excel?

    Можно показать n и все положительные nx декременты числа?

    Excel VBA Userform ListBox ширина автоматически изменяется

    TypeError: Значение должно быть списком, кортежем, диапазоном или генератором, или dict

    cfspreadsheet не может читать пустые строки

    Как найти и заменить регулярное выражение в excel

    Несколько экземпляров Excel – нет ошибок, но никаких изменений в макросах

    Excel VBA для поиска не уникальных значений с несколькими условиями

    Формат номера оси диаграммы Excel 2010 не обновляется

    Гиперссылка Excel требует ненужного дополнительного входа

    Давайте будем гением компьютера.