Umgehen der Auswahlbestätigung für Excel-Dateien für die Datenverbindung mit einer Nicht-TXT-Textdatei

3

Ich habe eine Excel-Arbeitsmappe, die die Modellausgabe eines anderen Programms verarbeitet. Dieses Programm erstellt durch Leerzeichen getrennte Nur -Text-Ausgabedateien mit der Erweiterung ".plt" . Ich habe eine Datenverbindung in Excel, um diese Daten einzugeben, aber es sind mehr Klicks erforderlich, als ich möchte. Derzeit ist der Arbeitsablauf wie folgt:

  1. Führen Sie ein anderes Modell aus.
  2. Klicken Sie in Excel auf Daten-> Alle aktualisieren
  3. Klicken Sie im sich öffnenden Dateidialog auf "Textdateien (* .prn, * .txt, * .csv)".
  4. Pull Down erscheint - klicken Sie auf: "Alle Dateien (*. *)" .
  5. Dateinamen aus der Liste auswählen (Dateiname ändert sich nie - Immer "Output.plt" )
  6. Wählen Sie "Importieren".

Von hier aus merkt es sich alle Einstellungen für die Datenverbindung - Speicherorte, Text in Spalten usw. Da sich mein Dateiname jedoch nie ändert, würde ich mir wünschen, dass er sich an den Namen meiner Datei erinnert, sodass ich nur einen oder zwei hätte Klicks statt 5.

Ich habe versucht, ein Makro aufzuzeichnen, indem ich all diese Schritte durchlaufen habe, aber das einzige Stück, das in VBA aufgetaucht ist, ist ActiveWorkbook.RefreshAll

Adam
quelle
1
Wie wäre es mit Workbooks.Open Dateiname: = _ "C: \ Desktop / Output.plt" in einem Makro.
Cybernard
Das eröffnet Output.plt als Datei, aber es bringt sie nicht in meinem ResultsAnalysisTemplate.xlsb Ich glaube , ich VBA nutzen, um die Datei zu öffnen, wählen Sie die einzelnen Datengruppe ich brauche, und kopieren Sie die jeweils an ihren entsprechenden Platz in der vorlage, aber ich hätte gedacht, es gäbe eine direktere lösung.
Adam

Antworten:

3

Es gibt eine Option zur Eingabe des Dateinamens.

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

Deaktivieren Sie im Bereich "Aktualisierungssteuerung" auf der Registerkarte "Verwendung" das Kontrollkästchen "Beim Aktualisieren nach dem Dateinamen fragen".

Jon
quelle
0
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
kybernard
quelle