2017-07-05 7 views
-1

私は2つの列をテキストファイルにエクスポートしようとしていました。私は次のコードを書いた:VBAを使用して複数のExcelの列をタブインデントなしでテキストファイルにエクスポートするにはどうすればよいですか?

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 

ファイルを保存した後。 2つの列の行は、タブ区切りとしてペーストされています。どのような方法でインデントなしで貼り付けることができますか?

答えの1つに記載されているように、ファイル形式がxlCSVの場合、カンマ区切りの値でファイルが取得されます。同様に、私はどのように":"分離列を取得するかを知りたいです。

+0

保存したコードをtxtファイルとして保存してください。 Thanks – Alok

+0

@Alok質問を更新しました。 – sbk

答えて

1

保存する前に各行をループし、2つの列を連結することができます。

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

私は列を任意の字下げで区切りたい、または ":"で区切っても問題ないでしょう。 – sbk

+0

いくつかの出力例がありますか?元のワークブックのセル内に空白がありますか? – cdo256

+0

空白がありません。それらはちょうど2つの列です。 ABCと111が隣接する列のセルの2つの値であるとしましょう。テキストファイルにABCの代わりにABC111が必要です(タブ区切り)111 – sbk

関連する問題