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

标签 excel vba csv

我正在尝试通过如下代码将工作簿中的多个工作表导出到 .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/

相关文章:

java - 如何在 Java 中的 Excel 工作簿之间复制工作表

sql - 似乎无法摆脱讨厌的语法错误

excel - 使用登录页面将数据导入 Excel 2003

vba - Excel VBA - 编写数组的更有效方法

java - 在Java中计算+2000万条记录的统计信息

r - 如何根据空白行从 df 分区为多个 .csv?

python - 如何加速代码——搜索数据框需要几个小时

excel - 创建查询后如何从 SSAS 多维数据集导出数据?

excel - 如果事件单元格(两行或多行)在同一列中,则突出显示单元格

.net - 我可以在 Word 或 Excel 中创建撤消事务吗? (VSTO)