![]() |
ADO - recordset - closed excel workbook - know sheet name and cell name but no named ranges defined
Heres my query
I have a closed work book I wish to extract results from into my open workbook 1. I know the path where the closed spreadsheet file lives 2. I know the sheet name, sheet name and cell name that i want to read into my recorset however NB This sheet is sent to me by someone external and there are no named ranges in it. Ive found a code snippet that I thought might suit Sub GetDataFromClosedWorkbook(ByVal SourceFile As String, _ ByVal SourceRange As String, _ ByVal TargetRange As Range, ByVal IncludeFieldNames As Boolean) .. .. .. ' it set up the connection to my file dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _ "ReadOnly=1;DBQ=" & SourceFile Set dbConnection = New ADODB.Connection dbConnection.Open dbConnectionString ' and calls the execute method to run the query Set rs = dbConnection.Execute("[" & SourceRange & "]") .. .. End Sub The Call works fine provided we use parameters like Call GetDataFromClosedWorkbook("C:\mySS.xls", "F5:H7", Range("Target"), False) But I need to be more specific instead of saying "F5:H7" I need to say WorkSheets("mySheetName").Range("F5:H7") ive tried using the .Address() method to return a string i.e. WorkSheets("mySheetName").Range("F5:H7").Address() but to no avail NB: The ADODB method dbConnection.Execute(.....) expects a string Any Ideas Thanks Graham |
ADO - recordset - closed excel workbook - know sheet name and cell
Have you tried this:
Call GetDataFromClosedWorkbook("C:\mySS.xls", "'mySheetName'!F5:H7", Range("Target"), False) Might work! "grahamd" wrote: Heres my query I have a closed work book I wish to extract results from into my open workbook 1. I know the path where the closed spreadsheet file lives 2. I know the sheet name, sheet name and cell name that i want to read into my recorset however NB This sheet is sent to me by someone external and there are no named ranges in it. Ive found a code snippet that I thought might suit Sub GetDataFromClosedWorkbook(ByVal SourceFile As String, _ ByVal SourceRange As String, _ ByVal TargetRange As Range, ByVal IncludeFieldNames As Boolean) .. .. .. ' it set up the connection to my file dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _ "ReadOnly=1;DBQ=" & SourceFile Set dbConnection = New ADODB.Connection dbConnection.Open dbConnectionString ' and calls the execute method to run the query Set rs = dbConnection.Execute("[" & SourceRange & "]") .. .. End Sub The Call works fine provided we use parameters like Call GetDataFromClosedWorkbook("C:\mySS.xls", "F5:H7", Range("Target"), False) But I need to be more specific instead of saying "F5:H7" I need to say WorkSheets("mySheetName").Range("F5:H7") ive tried using the .Address() method to return a string i.e. WorkSheets("mySheetName").Range("F5:H7").Address() but to no avail NB: The ADODB method dbConnection.Execute(.....) expects a string Any Ideas Thanks Graham |
All times are GMT +1. The time now is 10:10 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com