Метод от Vembutech - это, безусловно, более изощренное решение. Вот облегченный макрос VBA, который экспортирует все листы из одной книги.
Заходит в папку активных книг все имена workbookname_sheetname.csv
Sub exportcsv()
Dim ws As Worksheet
Dim path As String
path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Activate
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
Next
End Sub
РЕДАКТИРОВАТЬ:
Для комментария. Оригинальный макрос просто использует функцию сохранения как (что-то вроде закрытия оригинала). Если вы хотите сделать это, оставив оригинал открытым, вам необходимо скопировать его в новую рабочую книгу, сохранить, закрыть новую рабочую книгу.
Sub exportcsv()
Dim ws As Worksheet
Dim path As String
path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next
End Sub
Run-time error '1004': Application-defined or object-defined error
мой Excel для Mac.