This VBA code saves each Worksheet in the active Excel Workbook to a separate file and even lets you decide whether to keep the formulas on the sheets or change them to values. When you run the code, you will be asked for the folder location where the files should be created. Sheets will not be deleted from the old Workbook and it will not be effected in any way.
Sub SheetsSaveInSeparateFiles() Dim objFolders As Object Set WshShell = CreateObject("WScript.Shell") FOL = WshShell.SpecialFolders("MyDocuments") If Sheets.Count > 0 Then fldr = GetFolder(FOL) If fldr <> "" Then yn = MsgBox("Preserve formulas?", vbYesNo) cnt = 0 Application.ScreenUpdating = False Application.DisplayAlerts = False For Each sh In ActiveWorkbook.Sheets sh.Copy If yn = vbNo Then With ActiveSheet.UsedRange .Value = .Value End With End If On Error Resume Next Application.ActiveWorkbook.SaveAs Filename:=fldr & "\" & sh.Name & ".xlsx" er = Err.Number dsc = Err.Description On Error GoTo 0 If er <> 0 Then MsgBox "Had trouble saving " & fldr & "\" & sh.Name & ".xlsx" MsgBox dsc Else cnt = cnt + 1 End If Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox cnt & " Files saved to " & fldr Else MsgBox "No folder selected. " End If Else MsgBox "No sheets to save" End If End Sub
This Code can also be found in an Xcessories AddIn for Excel which can be downloaded here.
The code bellow asks for a folder location, and then for a ...
This is a short but sweet VBA code that let’s you open all ...
Custom lists are very useful in Excel because they are a quick ...
Imagine having many Sheets in a workbook. Now you would like all ...