Excel: Datenquelle mit Makro ändern

Excel: Datenquelle mit Makro ändern

Ich verwende eine CSV-Datei (generiert von einem Thing-Party-Programm) als externe Datenquelle und möchte ihren Pfad über ein Makro ändern ... Wie mache ich das?

Eine weitere akzeptable Antwort auf mein Problem wäre eine Möglichkeit, einen Pfad relativ zur Excel-Datei anzugeben – ich habe noch nicht herausgefunden, wie das geht –, da sich in meinem Fall sowohl die CSV- als auch die XLS-Datei im selben Verzeichnis befinden.

Antwort1

Sub Import()
    Dim FilePath As String
    FilePath = "TEXT;C:\directory\" & Cells(1, 1).Value
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=FilePath, Destination:=Range("$A$1"))
        .Name = "Book1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

Dadurch wird ein neues Blatt mit den Daten erstellt, wenn Sie die Datei (z. B. book3.csv) in Blatt1 A1 einfügen. Sie ändern C:\Verzeichnis in das Verzeichnis, in dem Ihre Eingabe vorhanden ist, und Sie können den Ausgabebereich in Zeile 5 „Bereich“ ändern.

Darüber hinaus gibt Zeile 3 „Cells(1,1)“ die Eingabezelle an, Sie können diese also von Sheet1 A1 ändern, wenn Sie möchten. Sie müssen die Dateierweiterung in der Referenzzelle angeben, sonst weiß das Programm nicht, welche Datei importiert werden soll. Führen Sie einfach dieses Makro aus und Sie erhalten ein neues Blatt mit den Zieldaten. Wenn Sie eine neue Arbeitsmappe benötigen oder sie in ein vorhandenes Blatt einfügen möchten, lassen Sie es mich wissen.

Wenn Sie sich die Eigenschaften ansehen, sehen Sie, dass es sich um eine durch Kommas getrennte Datei handelt. Sie können das ändern oder einfach Ihr eigenes Makro aufzeichnen (Registerkarte „Entwickler“ -> „Makro aufzeichnen“) und oben die Befehle vom Typ „FilePath“ einfügen und den Verbindungsbefehl ändern.

verwandte Informationen