将所有工作表另存为csvs并保持原始文件处于活动状态

时间:2019-05-13 06:49:32

标签: excel vba

我有一个问题,我想将所有工作表保存为单独的csv文件,完成后应使用原始的excel文件。我在stackoverflow上发现了一些与此相关的问题,但是我无法将它们结合起来以使其工作:(

这是我目前有效的内容:

Sub SaveSheetsAsCsv()

Dim ws As Worksheet

Application.DisplayAlerts = False

For Each ws In ActiveWorkbook.Worksheets
    ws.SaveAs ActiveWorkbook.Path & "\" & ws.Name & ".csv", xlCSV, Local:=True
Next

Application.DisplayAlerts = True


End Sub

结果是,我将所有工作表都保存到了同一文件夹,但是我的工作簿被命名为我的最后一个工作表,如果我要关闭它,则说我必须保存它,但是我想保存我的工作表。原始的excel文件处于活动状态。

任何想法我该怎么做?

我尝试实现以下方法:Keep the same excel但我总是遇到错误:(

任何建议和帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

下面的调整将工作表复制到新书,另存为CSV并关闭。

Sub SaveSheetsAsCsv()

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Application.DisplayAlerts = False

For Each ws In ActiveWorkbook.Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs wb.Path & "\" & ws.Name & ".csv", xlCSV, Local:=True
    ActiveWorkbook.Close
Next

Application.DisplayAlerts = True

End Sub