Строка соединения vba с пробелом в dataname разорвана - PullRequest
0 голосов
/ 25 июня 2019

Мой код следующий.Я постараюсь скопировать диапазон данных с закрытого листа со строками соединения.Код в порядке, если в имени файла нет пустой строки.Например, test.xlsx - это нормально, но тестируйте дальше. xlsx не работает.

    '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

И второй вопрос.Если я хочу скопировать диапазон, как я должен написать код?Мне нужно определить последнюю ячейку в столбце.Как это возможно?

1 Ответ

0 голосов
/ 26 июня 2019

код, который я разместил, правильный.Это была ошибка в рабочей тетради (имя таблицы)

...