Учитывая преимущества ExcelADO, как описано здесь Я решил использовать Excel ADO для автоматизации QTP. Итак, вот код, который я использовал -
'Open the ADO connection to the Excel workbook
Dim oConn
Set oConn = CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\Mine\QTP\Book1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=NO;"""
'Set Record Set Object
Dim oRS
Set oRS = CreateObject("ADODB.Recordset")
'Execute Query
oRS.Open "Select * from qwerty", oConn, adOpenStatic
'Get String
a = oRs.GetString()
В упомянутом выше запросе 'qwerty' - это имя диапазона ячеек в Excel Sheet. Вышеупомянутый фрагмент кода работает идеально, если диапазон ячеек - это имя двух или более ячеек. Я считаю очень полезным использовать именованный диапазон ячеек вместо использования «имя листа» и / или «положения строк и столбцов»
Теперь, когда я называю только одну ячейку и использую приведенный выше фрагмент кода, выдается следующее исключение
»
Механизм базы данных Microsoft Jet не смог найти объект «qwerty». Убедитесь, что объект существует и что вы правильно написали его имя и путь
код: 80040E37
"
Мне кажется, данные могут быть получены с использованием диапазона (именованных ячеек), только когда диапазон использует 2 или более ячеек. Это правильно? Если так, то как я могу получить данные только для одной именованной ячейки?
~ T