ExcelADO - VBScriptを使用してExcelからデータをフェッチする範囲を使用しました

StackOverflow https://stackoverflow.com/questions/2242508

  •  19-09-2019
  •  | 
  •  

質問

、ここで説明したように、私がすることを決定しましたの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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top