Also ich arbeite mit CSV-Dateien und ich muss Excel öffnen gehen Sie auf Daten -> Aus Text und formatieren bestimmte Spalten bestimmte Möglichkeiten. Ich habe ein Makro aufgenommen, das das tut, aber es öffnet immer die Datei, die ich beim Aufzeichnen des Makros benutzt habe. Wie ändere ich das Makro, so öffnet es das Dialogfeld und lassen Sie mich jedes Mal eine Datei auswählen? Ich habe dieses Stück Code im Internet gefunden, aber ich weiß nicht, wie ich es mit meinem aufgezeichneten Makro in VBA integrieren kann.Excel-Makro für "Daten aus Text" ändern, um das Dialogfeld zu öffnen?
Dim MyFile As String
MyFile = Application.GetOpenFilename()
Nun, wie und wo und was ersetze ich in der unten stehenden Makro (der Code für die erstellt wird, um die „Makro aufzeichnen“, um in Excel)?
Sub random_name()
'
' random_name Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;MyFile = Application.GetOpenFilename()" _
, Destination:=Range("$A$1"))
.Name = "filename"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Vielen Dank!
Danke! Klappt wunderbar. Könnten Sie einfach Zeile 15 erklären ".Name =" Dateiname "" "Dateiname" wurde von mir dort gesetzt, um meinen tatsächlich verwendeten Dateinamen zu zensieren. Als ich das Makro zum ersten Mal aufzeichnete, war es ".Name =" " Also in Wirklichkeit bezieht sich dieser" Dateiname ", der gerade da ist, absolut noch nichts verursacht - warum ist das? Könnte es irgendwelche Probleme in einigen Situationen verursachen? Danke! –
Hallo, soweit ich sehe in der Dokumentation [link] (https://msdn.microsoft.com/en-us/library/office/ff820914. aspx) Der Name kann alles sein, was Sie wollen, damit Sie dieses bestimmte Stück Code durch etwas ersetzen können.Wenn Sie in Excel Daten gehen -> Verbindungen werden Sie sehen, dass es unter Ihrem Dateinamen ist. Sie können jedoch verwenden Dieser Name verweist in VBA auf ActiveSheet.QueryTables ("Dateiname"). – Tackgnol