Hi anderma8!
It's not easy to judge without attachments. Maybe the type of sheet is incorrect.
Try changing:
Private Function SheetExists(sWSName As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Set ws = Worksheets(sWSName)
If Not ws Is Nothing Then SheetExists = True
End Function
to
Private Function SheetExists(sWSName As String) As Boolean
Dim ws As Object
On Error Resume Next
Set ws = Sheets(sWSName)
If Not ws Is Nothing Then SheetExists = True
End Function