2017-01-19 1 views
1

私は複数のワークシートを持つExcellワークブックを持っています。私はすべてのワークシートのテキストを1つのテキストファイルにエクスポートしたい。私は、各ワークシートを独自のテキストファイルとしてエクスポートするために複数のソリューション(主にVBAを使用しています - 例)を見てきましたが、すべてのワークシートを1つのテキストファイルとしてエクスポートするソリューションはまだありません。どのようにVBA(またはおそらくPython)を使用してこれを達成するための任意のアイデア?Excelブックのすべてのワークシートを1つのテキストファイルとして保存するにはどうすればよいですか?

Sub ExportSheetsToText() 
Dim xWs As Worksheet 
Dim xTextFile As String 
For Each xWs In Application.ActiveWorkbook.Worksheets 
    xWs.Copy 
    xTextFile = CurDir & "\" & xWs.Name & ".txt" 
    Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText 
    Application.ActiveWorkbook.Saved = True 
    Application.ActiveWorkbook.Close 
Next 
End Sub 

答えて

2

これらのテキストファイルを生成したら、Windows Command Promptを使用して多数のテキストファイルを簡単に1つにマージできます。たとえば、すべてのファイル名の名前にパターンがあるとします。そして、あなたは、このようなコマンドプロンプトINE 1つのテキストファイルにマージ

xTextFile = CurDir & "\temp_" & xWs.Name & ".txt" 

type temp_*.txt >> mergedFile.txt 

すなわち*.txtが、私はあなたが彼らにそのようtemp_something.txtとして自分の名前でいくつかの追加のパターンを与えるお勧めしますまたは

copy temp_*.txt mergedFile.txt 

あなたは完全にVBAルーチン内の操作を自動化したい場合、あなたはそのように、その中のコマンドを統合することができます。

For Each xWs In Application.ActiveWorkbook.Worksheets 
    xWs.Copy 
    xTextFile = CurDir & "\temp_" & xWs.Name & ".txt" 
    Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText 
    Application.ActiveWorkbook.Saved = True 
    Application.ActiveWorkbook.Close 
Next 

Dim shl As Object: Set shl = CreateObject("WScript.shell") 
shl.CurrentDirectory = CurDir 
shl.Run "cmd /C copy temp_*.txt " & ThisWorkbook.name & ".txt" ' merge the temporary text files 

shl.Run "cmd /C del temp_*.txt" ' clean up the temporary text files 

最後に、ブックの名前と同じ名前のテキストファイルと、拡張子.txtが表示されます。

+0

これは本当に便利です。徹底した指導に感謝します。乾杯。 –

関連する問題