Этот код выполнит работу, он состоит из одного вспомогательного элемента и одной функции
Sub NewFinalSheet()
Dim wsNew As Worksheet
If Not wsExits("Final") Then
Set wsNew = thisworkbook.Worksheets.Add
wsNew.Name = "Final"
Exit Sub
End If
Dim i As Long, newWsName As String
Do
i = i + 1
newWsName = "Final_" & i
If Not wsExits(newWsName) Then
Set wsNew = ThisWorkbook.Sheets.Add
wsNew.Name = newWsName
Exit Sub
End If
Loop
End Sub
Функциональная часть, которую вы можете выбрать один из следующих двух: Это проще, но медленнее:
Function wsExits(shName As String) As Boolean
Dim ws As Worksheet
For Each ws In thisworkbook.Worksheets
If ws.Name = shName Then
wsExits = True
Exit Function
End If
Next ws
wsExits = False
End Function
Это должно быть быстрее, но это фокус ошибки
Function wsExits(shName As String) As Boolean
On Error GoTo NotE
If ThisWorkbook.Worksheets(shName).Name = shName Then
wsExits = True
Exit Function
End If
NotE:
wsExits = False
End Function