![](/img/trans.png)
[英]How can I save Excel worksheets in a single workbook as workbooks with their data
[英]How to save all worksheets in Excel workbook as one text file?
我有一個帶有多個工作表的Excell工作簿。 我想將所有工作表的文本導出到一個文本文件。 我已經看到了多種解決方案(主要使用VBA-下面的示例)將每個工作表導出為自己的文本文件,但是還沒有找到一種將所有工作表導出為一個文本文件的解決方案。 關於如何使用VBA(或Python)完成此操作的任何想法?
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
生成這些文本文件后,您可以使用Windows Command Prompt
輕松地將許多文本文件合並為一個。 例如,假設您的所有文件名的名稱都有某種模式。 即*.txt
但我建議您給它們添加一些其他名稱,例如temp_something.txt:
xTextFile = CurDir & "\temp_" & xWs.Name & ".txt"
然后將它們合並為一個文本文件,並在命令提示符下顯示如下:
type temp_*.txt >> mergedFile.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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.