在VBScript中使用ADODB查找Excel工作表中的行数?

时间:2011-08-17 10:56:44

标签: excel vbscript adodb

我正在尝试在VBScript中使用ADODB来访问Excel文件,以查找给定工作表中输入数据的行数。到目前为止,我的代码显示了工作表上的所有内容,但我不确定如何计算行数或直接使用查询查找行数。我想使用ADODB,因为它不直接打开Excel文件,但如果这不是最好的方法,那么我怎么能这样做呢?感谢。

Set adodb = CreateObject("ADODB.Connection")
adodb.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
              "test.xls" & ";Extended Properties=""Excel 8.0;IMEX=1;" & _
              "HDR=NO;" & """"

Set result = adodb.Execute("Select * from [Sheet1$]")

MsgBox result.GetString 

result.Close
adodb.Close
Set adodb = Nothing
Set result = Nothing

2 个答案:

答案 0 :(得分:1)

为Connection对象添加 CursorLocation 属性。

<强>更新

'result.CursorLocation = 3 'adUseClient
adodb.CursorLocation = 3 'adUseClient

然后你可以获得行数。

MsgBox result.RecordCount

答案 1 :(得分:1)

我让这个工作正常:

Sub testit()

Dim ad As New adodb.Connection
Dim result As New adodb.Recordset

    ad.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=test.xls ;" & _
    "Extended Properties=Excel 8.0;"

    result.Open "Select count(*) FROM [Sheet1$]", _
        ad, adOpenStatic, adLockOptimistic, adCmdText

    Debug.Print "rows:" & result.GetString

    result.Close
    ad.Close

End Sub

(我更改了你的变量名adodb,因为它似乎有冲突)。