ExcelADO - VBScriptを使用してExcelからデータをフェッチする範囲を使用しました
質問
、ここで説明したように、私がすることを決定しましたのExcelADOの利点を考えますQTPオートメーションのためのエクセルADOを使用します。だからここに私が使用したコードがある -
'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シートのセルの範囲の名前です。コードの言及部分の上に働く完璧な提供セル範囲は、二つ以上のセルの名前です。私の代わりに「シート名」および/または「行と列の位置を」
を使用しての名前付きセル範囲を使用することは非常に便利今、私はちょうど一つのセルに名前を付けるときと
次の例外がスローされ、コードの一部の上に使用します」 Microsoft Jetデータベースエンジンは、オブジェクトのQWERTY」を見つけることができませんでした。オブジェクトが存在することを確認してください、あなたはその名前とパス名は、
正しく綴ることコード:80040E37
"
これは、私には見えたデータは、範囲が2個の以上の細胞を利用した場合にのみ範囲(命名細胞)を使用して取り出すことができます。それが正しいか?そうならば、どのように私は一つだけという名前のセルのデータを取り出すことができますか?
〜T
解決
私のための作業以下の例のいずれもが、あなたが見ることができるように、それはあるいは違いを確認してもしなくてもよい、IMEX = 1を除き、あなたの例と非常によく似ています。
MsgBox fExcelCellADO ("c:\docs\book1.xls","sheet1$b2:b2")
MsgBox fExcelCellADO ("c:\docs\book1.xls","therange")
Function fExcelCellADO(strFileName, strCell)
Dim cn
Dim rs
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & strFileName & ";" _
& "Extended Properties='Excel 8.0;HDR=No;IMEX=1';"
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT F1 FROM [" & strCell & "]", cn
fExcelCellADO = rs.fields("F1")
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Function
所属していません StackOverflow