gpt4 book ai didi

excel - 如何将多个工作表导出为 CSV(不保存当前工作表)

转载 作者:行者123 更新时间:2023-12-02 07:32:29 28 4
gpt4 key购买 nike

我正在尝试通过如下代码将工作簿中的多个工作表导出到 .csv:

Sub Export_To_CSV(exportPath As String)    

Dim filePath As String

For Each WS In ThisWorkbook.Worksheets

filePath = exportPath & "(" & WS.Name & ").dat"
WS.SaveAs Filename:=filePath, FileFormat:=xlCSV

Next
End Sub

问题是这会保存我打开的当前 .xlsm 文件。

如何在不更改当前文件名的情况下导出 .csv?

我认为 SaveCopyAs 可以解决问题,但它仅适用于 工作簿,而不适用于工作表

最佳答案

这是我的想法,可以帮助你......添加这部分代码,而不是当前的 for...next 部分:

'...your code here
Dim tmpWS As Worksheet
Application.DisplayAlerts = False
For Each WS In ThisWorkbook.Worksheets

filePath = exportPath & "(" & WS.Name & ").dat"

WS.Copy
Set tmpWS = ActiveSheet
tmpWS.SaveAs Filename:=filePath, FileFormat:=xlCSV
tmpWS.Parent.Close False
Next
Application.DisplayAlerts = True
'...your code here

代码的逻辑?首先,它将工作表的副本复制到临时工作簿中,接下来将新工作表另存为 CSV 文件,最后关闭临时工作簿。此外,我添加了 Application.DisplayAlerts 指令,您的代码将覆盖 .csv 文件,而不询问文件是否已存在。

关于excel - 如何将多个工作表导出为 CSV(不保存当前工作表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com