My Code is following. I'll try to copy a range of data from a closed sheet with connectionstrings. The Code is okay if the dataname hasn't a empty string. e.g. test.xlsx is okay but test further.xlsx get broken.
    'using sql
Sub ImportThisFile(FilePath As String, SourceSheet As String, Destination As Range)
    Set Conn = New ADODB.Connection
    'xls
    'Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
    '    FilePath & ";Extended Properties=Excel 8.0;"
    'xlsx
    Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & _
        FilePath & ";Extended Properties=Excel 12.0 Xml;"
    Sql = "SELECT * FROM [" & SourceSheet & "$]  WHERE [fieldname] <> " & [""""""]
    Set RcdSet = New ADODB.Recordset
    RcdSet.Open Sql, Conn, adOpenForwardOnly
    Destination.CopyFromRecordset RcdSet
    RcdSet.Close
    Set RcdSet = Nothing
    Conn.Close
    Set Conn = Nothing
End Sub
Sub StartDoingStuff()
    Dim Zeit As Long, Anzahl As Long
        Anzahl = 1
        Zeit = Timer
        Dim testvar As String, testvar2 As String, testvar3 As String
        testvar = "C:\Users\Admin\Desktop\Folder\"
        testvar2 = "testdata with emptystrings.xlsx.xlsx"
        testvar2 = "test.xlsx"
        testvar3 = "Tabelle1"
            ImportThisFile testvar & testvar2, "Timesheet", Range(testvar3 & "!A2")
        Debug.Print "Zeitbedarf"; Round(Timer - Zeit, 3)
End Sub
And Second Question. If I want to copy a range, how i must write the code? I need to determine the last cell in a column. How is that possible ?
 
    