如何将Excel工作簿中的所有工作表保存为一个文本文件?

2024-05-29 04:45:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含多个工作表的excel工作簿。我想将所有工作表的文本导出到一个文本文件中。我已经看到了多种解决方案(主要是使用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

Tags: 文本示例applicationas解决方案vbaexcel文本文件
1条回答
网友
1楼 · 发布于 2024-05-29 04:45:39

生成这些文本文件后,可以使用Windows Command Prompt轻松地将多个文本文件合并为一个。例如,假设所有的文件名在它们的名称中都有某种模式。i、 但是我建议你在他们的名字里给他们一些额外的模式,比如temp_某物.txt公司名称:

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

然后在命令提示符下将它们合并到一个文本文件中,如下所示:

^{pr2}$

或者

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。在

相关问题 更多 >

    热门问题