I found this forum while searching for an answer to my problem. I found the solution posted here:
How do I save each sheet in an Excel 2010 workbook to separate CSV files with a macro?
I appologize for not commenting on that post, but I could not find an option to do so. So, I am posting this question.
I am not using the zip function, just creating the CSV files and excluding some of the sheets. As you can see, I am also doing some find/replace functions and refreshing data.
It is working fine with the exception it is taking a very long time to run (1-1/2 hours). If I remove the save functions, and save each sheet manually, it can be completed in a few minutes.
What is bogging it down?
Code below (sorry for the poor formatting)
Sub Worksheet_Macro()
' Category_Trail Macro
' Macro breaks category trail down into individual categories. TO BE USED ONLY IN THE "WORKSHEET" SHEET
'
'
Dim ws As Worksheet
Dim strMain As String
Dim lngCalc As Long
strMain = "C:\Users\David Cox\Documents\TotalOutdoorsman\Site\Inventory\Daily Upload Files\"
' Turn off calculations
With Application
.DisplayAlerts = False
.ScreenUpdating = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
End With
'Update all Data
ActiveWorkbook.RefreshAll
'Copy and Paste Categories and create trail
Sheets("Worksheet").Select
Range("Ah2:Ah20000").Select
Selection.Copy
Range("Ai2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("Ai2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
' Clean_Description Macro
' Macro copies and pastes product descriptions to new column and then cleans them of HTML code.
'
'
Range("AO2:AO20000").Select
Selection.Copy
Range("AP2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("AP:AP").Select
Selection.Replace What:="<br>", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="</br>", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' Remove Appostrophies Macro
Sheets("RSR Inventory").Select
Columns("L:L").Select
Range("L5743").Activate
Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Sheets("Valor Inventory").Select
ActiveWindow.LargeScroll ToRight:=-1
Columns("C:C").Select
Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' Go back to Main Product Page
Sheets("MainProductPage").Select
'Turn Calculations back on
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = lngCalc
End With
'Save before creating CSV Files
ThisWorkbook.Save
' Turn off calculations
With Application
.DisplayAlerts = False
.ScreenUpdating = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
End With
'Save all CSV files
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "Imported Product Data", "Sheet 2", "Sheet 3"
'do nothing for these sheets
Case Else
ws.SaveAs strMain & ws.Name, xlCSV
End Select
Next
'Turn Calculations back on
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = lngCalc
End With
End Sub