ich würde gern aus einer großen Excel-Datei (160MB) einen definierten Bereich eines Tabellenblattes in eine neue Date kopieren, ohne die Quelldatei öffnen zu müssen.
Vielen Dank
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Public Sub ReadFromFile_ADO()
'Daten nach Kriterium
Dim objADO As Object
Set objADO = ExcelTable("E:\Temp\test.xlsx", "Tabelle2", "A1:B8")
Range("A2").CopyFromRecordset objADO
objADO.Close
End Sub
Public Function ExcelTable(ByRef Path As String, ByRef Table As String, ByRef SourceRange As String, Optional WhereString As String = "") As Object
Dim SQL As String
Dim Con As String
SQL = "select * from [" & Table & "$" & SourceRange & "] " & WhereString
If Mid(Path, InStrRev(Path, ".") + 1) = "xls" Then
Con = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Extended Properties=Excel 8.0;" _
& "Data Source=" & Path & ";"
ElseIf Mid(Path, InStrRev(Path, ".") + 1) Like "xls?" Then
Con = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Extended Properties=""Excel 12.0;HDR=YES"";" _
& "Data Source=" & Path & ";"
Else
Exit Function
End If
Set ExcelTable = CreateObject("ADODB.Recordset")
ExcelTable.Open SQL, Con, 3, 1
End Function