Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Based on some other stuff I found here, I have made the following script to do almost exactly what I want. It will export all but 4 specific sheets in an excel file to CSV files, append dates to them, and save them to dated folders. The only problem is it renames the sheets it exported in the original processing file. How can I rectify this?

Sub SaveLCPWorksheetsAsCsv()

Dim WS As Excel.Worksheet
Dim SaveToDirectory As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook

  SaveToDirectory = "C:\test\" & Format(Date - 1, "YYYYMM") & "\"

  If Len(Dir(SaveToDirectory, vbDirectory)) = 0 Then
    MkDir SaveToDirectory
  End If

  For Each WS In ThisWorkbook.Worksheets
    If WS.Name <> "Input" And WS.Name <> "Ref" And WS.Name <> "Total" And WS.Name <> "Affected Accounts" Then
        WS.SaveAs SaveToDirectory & WS.Name & "_" & Format(Date - 1, "YYYYMMDD"), xlCSV
    End If
  Next

 Application.DisplayAlerts = False
  ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
 Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
'  about overwriting the original file.

End Sub
share|improve this question
add comment

1 Answer

Sub Tester()

Dim ws As Worksheet, wb As Workbook

    For Each ws In ThisWorkbook.Worksheets
        ws.Copy 'creates a new workbook
        With ActiveWorkbook
            .SaveAs "C:\temp\" & ws.Name & "_blah.csv", xlCSV
            .Close False
        End With
    Next ws

End Sub
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.