Sub test()
Call DeleteEmpties(ThisWorkbook)
End Sub
Sub DeleteEmpties(wbk As Workbook)
'remove all empty sheets from the workbook
Dim ws As Worksheet, bNonEmpty As Boolean
Application.DisplayAlerts = False
For Each ws In wbk.Worksheets
If ws.Name <> ActiveSheet.Name Then
If ws.Visible = xlSheetVisible Then
If WorksheetFunction.CountA(ws.Cells) > 0 Then
bNonEmpty = True
Else
ws.Delete
End If
End If
End If
Next ws
If bNonEmpty And Not WorksheetFunction.CountA(Cells) > 0 Then ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub