Sub Test1()
Dim Mysheets As Object
Dim i As Long
Set Mysheets = Application.Worksheets
On Error GoTo ErrHandler
For i = 1 To Mysheets.Count
Cells(i, "A").Value = Mysheets(i).Name
Next i
Set Mysheets = Nothing
Exit Sub
ErrHandler:
MsgBox "Count is " & i & ", Name is " & Mysheets(i).Name
Application.ScreenUpdating = True
End Sub
Sub ListFormulas()
Dim Mysheets As Object
Dim Sht As Worksheet
Dim FormSht As Worksheet
Dim Cel As Range
Set Mysheets = Application.Worksheets
'UnComment next line after passes testing
'Application.ScreenUpdating = False
For Each Sht In Mysheets
Worksheets.Add After:=Sheets(Sht.Name)
ActiveSheet.Name = Sht.Name & "_Formulas"
Set FormSht = ActiveSheet
For Each Cel In Sht.UsedRange
If InStr(Cel.Formula, "=") = 1 Then _
FormSht.Range(Cel.Address) = "'" & Cel.Formula
Next Cel
Next Sht
Application.ScreenUpdating = True
End Sub
Sub DeleteFormulaListSheets()
Dim i As Long
Application.DisplayAlerts = False
Application.EnableEvents = False
On Error GoTo CleanEnd
For i = Sheets.Count To 1 Step -1
If InStr(Sheets(i).Name, "_Formulas") > 0 Then Sheets(i).Delete
Next i
CleanEnd:
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub