2017-07-05 2 views
-1

Ich habe versucht, zwei Spalten in eine Textdatei zu exportieren. Ich habe den folgenden Code geschrieben:Wie Exportieren mehrerer Excel-Spalten in eine Textdatei ohne Tabulatoreinzug mithilfe von VBA?

Dim wb As Workbook 
Dim WorkRng As Range 
Dim saveFile As String 
//Some code for selecting the range 

Set wb = Application.Workbooks.Add 
WorkRng.Copy 
wb.Worksheets(1).Paste 

//Code for saving the file in *.txt 
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt") 
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False 

Nach dem Speichern der Datei. Die Zeilen in zwei Spalten werden als Tab getrennt eingefügt. Gibt es eine Möglichkeit, sie ohne Einrückung einzufügen?

Wie in einer der Antworten erwähnt, wenn Dateiformat xlCSV ist, werde ich eine Datei mit kommagetrennten Werten erhalten. Ähnlich möchte ich wissen, wie man eine ":" getrennte Spalten erhält.

+0

Bitte teilen Sie den Code, den Sie zum Speichern als TXT-Datei verwendet haben. Danke – Alok

+0

@Alok Aktualisiert die Frage. – sbk

Antwort

1

Sie können jede Zeile durchlaufen und die beiden Spalten vor dem Speichern verketten.

Dim wb As Workbook 
Dim WorkRng As Range 
Dim saveFile As String 
Dim sh As Worksheet 
Dim rw As Range 

//Some code for selecting the range 

Set wb = Application.Workbooks.Add 
WorkRng.Copy 

Set sh = wb.Worksheets(1) 
sh.Paste 

For Each rw In sh.Rows 
    If sh.Cells(rw.Row, 1).Value = "" Then 
    Exit For 
    End If 

    rw.Cells(rw.Row, 1).Value = Concat(rw.Cells(rw.Row, 1).Value, rw.Cells(rw.Row, 2).Value) 
    rw.Cells(rw.Row, 2).Value = "" 
Next rw 

//Code for saving the file in *.txt 
saveFile = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt") 
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False 
+0

Ich möchte nicht, dass die Spalten mit einem Einrückung getrennt werden oder ":" getrennt wird auch in Ordnung sein. – sbk

+0

Können Sie ein Beispiel für eine Ausgabe geben? Haben Sie innerhalb Ihrer Zellen auf der ursprünglichen Arbeitsmappe Leerraum? – cdo256

+0

Ich habe keine Leerzeichen. Sie sind nur zwei Spalten. Angenommen, ABC und 111 sind zwei Werte von Zellen in benachbarten Spalten. Ich brauche die Textdatei, um ABC111 anstelle von ABC zu haben (Tab getrennt). 111 – sbk

Verwandte Themen