使用OLEDB从打开的Excel文件读取数据

我有一个Excel文件(让我们说文件X)与2张。 在第一张我显示图表。 第二我有图表的数据。 为了从图表中获取数据,我需要像在Group by中一样处理这些数据。 有没有什么办法可以使用oledb从第二张使用同一个Excel文件(文件X)中的VBA代码读取数据?

谢谢!!

下面是使用SQL从两个范围连接数据的示例:如果文件处于打开状态(只要已保存,因为您需要文件path),则工作正常。

Sub SqlJoin() Dim oConn As New ADODB.Connection Dim oRS As New ADODB.Recordset Dim sPath Dim sSQL As String sSQL = "select a.blah from <t1> a, <t2> b where a.blah = b.blah" sSQL = Replace(sSQL, "<t1>", Rangename(Sheet1.Range("A1:A5"))) sSQL = Replace(sSQL, "<t2>", Rangename(Sheet1.Range("C1:C3"))) If ActiveWorkbook.Path <> "" Then sPath = ActiveWorkbook.FullName Else MsgBox "Workbook being queried must be saved first..." Exit Sub End If oConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & sPath & "';" & _ "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';" oRS.Open sSQL, oConn If Not oRS.EOF Then Sheet1.Range("E1").CopyFromRecordset oRS Else MsgBox "No records found" End If oRS.Close oConn.Close End Sub Function Rangename(r As Range) As String Rangename = "[" & r.Parent.Name & "$" & _ r.Address(False, False) & "]" End Function