Umgehen der Excel-Dateiauswahlbestätigung für die Datenverbindung mit einer anderen Textdatei als TXT

Umgehen der Excel-Dateiauswahlbestätigung für die Datenverbindung mit einer anderen Textdatei als TXT

Ich habe eine Excel-Arbeitsmappe, die Modellausgaben aus einem anderen Programm verarbeitet. Dieses Programm erzeugt durch Leerzeichen getrennte Nur-Text-Ausgabedateien mit einem".plt"Erweiterung. Ich habe eine Datenverbindung in Excel, um diese Daten einzubinden, aber es erfordert mehr Klicks, als mir lieb ist. Derzeit sieht der Arbeitsablauf so aus:

  1. Führen Sie ein anderes Modell aus.
  2. Klicken Sie in Excel auf Daten->Alle aktualisieren
  3. Klicken Sie im sich öffnenden Dateidialogfeld auf"Textdateien (*.prn, *.txt, *.csv)"
  4. Das Pulldown-Menü wird angezeigt. Klicken Sie auf:"Alle Dateien (*.*)".
  5. Dateinamen aus Liste auswählen (Dateiname ändert sich nie - Immer"Ausgabe.plt")
  6. Wählen"Importieren."

Von hier aus merkt es sich alle Einstellungen für die Datenverbindung – Standorte, Text in Spalten usw. Da sich mein Dateiname jedoch nie ändert, wünschte ich, es würde sich den Namen meiner Datei merken, sodass ich nur ein oder zwei Klicks statt fünf machen müsste.

Ich habe versucht, ein Makro aufzuzeichnen, das alle diese Schritte durchläuft, aber das einzige Teil, das in VBA angezeigt wurde, istActiveWorkbook.RefreshAll

Antwort1

Es besteht die Möglichkeit, nach einem Dateinamen zu fragen.

Gehen Sie zu Daten/Verbindungen, wählen Sie Ihre Verbindung und klicken Sie auf Eigenschaften.

Entfernen Sie im Abschnitt „Aktualisierungssteuerung“ auf der Registerkarte „Verwendung“ das Häkchen aus dem Kontrollkästchen „Beim Aktualisieren nach Dateinamen fragen“.

Antwort2

Dim File_Path As String
File_path=" C:\Users\owner\John\Output.plt"
Open File_Path for Input as #1
row_num= 5
Do until EOF(1)
Line Input #1, Line_FromFile
Line_Items = Split(Line_FromFile, ",")
Range("C"&row_num).Value = Line_Items(2)
Range("B"&row_num).Value = Line_Items(1)
Range("A"&row_num).Value = Line_Items(0)
row_num = row_num + 1
Loop
Close #1

verwandte Informationen