Hi,
Try this macro:
Sub SaveAllCsv()
Dim xl As New Excel.Application
Dim wk As New Excel.Workbook
Dim s As Excel.Worksheet
Dim fso As New FileSystemObject ' You need set the Microsoft Scripting
Runtime in References
Dim a As File
Dim f As Folder
Dim pathDir, pathDirOut As String
' Set dir of the files
pathDir = "C:/xls/"
' Set out dir
pathDirOut = "C:/xls/out/"
Set f = fso.GetFolder(pathDir)
For Each a In f.Files
Set wk = xl.Workbooks.Open(a)
xl.DisplayAlerts = False
' Look for all sheets in the workbook
For Each s In wk.Sheets
' If is there values in the sheet, save as...
If xl.WorksheetFunction.CountA(s.Range("A1:A65536")) > 0
Then
s.SaveAs pathDirOut & s.Name & Replace(a.Name,
".xls", ".csv"),
FileFormat:=xlCSV
End If
Next
wk.Close
xl.DisplayAlerts = True
xl.Quit
Set xl = Nothing
Set wk = Nothing
DoEvents
Next
End Sub
On Mon, Jun 15, 2009 at 1:19 PM, Hadley Wickham <hadley@rice.edu> wrote:
> Hi all,
>
> This is a little off-topic, but it is on the general topic of getting
> data in R. I'm looking for a excel macro / vba script that will
> export all spreadsheets in a directory (with one file per tab) into
> csv. Does anyone have anything like this?
>
> Thanks,
>
> Hadley
>
> --
> http://had.co.nz/
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
[[alternative HTML version deleted]]