El método de vembutech es definitivamente una solución más pulida. Aquí hay una macro ligera de VBA que exportaría todas las hojas de un libro de trabajo.
Va en la carpeta de libros activos todos los nombres son 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
EDITAR:
Por el comentario. La macro original simplemente usa la función guardar como (que es como cerrar el original). Si desea hacer esto mientras deja abierto el original, debe copiarlo en un nuevo libro de trabajo, guardar, cerrar el nuevo libro de trabajo.
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
mi Excel para Mac.