2013-07-16 43 views
2

我有一個名爲「SomeFile.xlsx」的工作簿,我需要連接到此工作表並從工作表中提取一系列數據。我正嘗試使用ADO連接,但沒有成功。我有以下代碼:使用ADO從關閉的Excel工作表中選擇數據

Sub ExtractData() 
Dim cnn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim PathName As String 
Dim PathRange As String 

    PathRange = "SELECT * FROM [AddConvert$D4:D10];" 
    PathName = "C:\path\myFile.xlsx" 
    Set cnn = New ADODB.Connection 
    With cnn 
     .Provider = "Microsoft.ACE.OLEDB.12.0 " 
     .ConnectionString = "Data Source=" & PathName & ";Extended Properties=Excel 12.0;" 
     .CursorLocation = adUseClient 
     .Open 
    End With 'Works fine up to here 
    Set rs = cnn.Execute(PathRange) 'Dies here 

End Sub 

一切工作盡我所知。我在cnn上放了一塊手錶,並在最後一行中斷了。 cnn看起來不錯。 HOwever,它一直說它找不到AddConvert工作表並獲取數據。我不明白爲什麼它找不到或發生了什麼。

回答

2

您應該使用Excel 12.0 for .xlsx文件。例如:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx; 
    Extended Properties="Excel 12.0 Xml;HDR=YES"; 

connectionstrings

+0

對不起,我抓住了這一點,改變了它,它仍然提供了錯誤。 :( –

+0

哦!這是一個錯字!感謝! –

+1

你忘了「Xml」;)?很高興你把事情解決了。 –

相關問題