У меня есть следующий код, который не работает, как ожидалось:
If Sheets("a") <> "" Then MsgBox ("sheet a exists")
Как я могу определить, существует ли лист а в книге?
У меня есть следующий код, который не работает, как ожидалось:
If Sheets("a") <> "" Then MsgBox ("sheet a exists")
Как я могу определить, существует ли лист а в книге?
Я бы сделал для него отдельную функцию:
Function SheetExists(SheetName As String)
On Error GoTo no:
WorksheetName = Worksheets(SheetName).Name
SheetExists = True
Exit Function
no:
SheetExists = False
End Function
Тогда вы можете легко вызвать его там, где это необходимо, даже в формуле, если хотите:
Sub ABC()
If SheetExists("Test") Then
MsgBox "Yay!"
Else
MsgBox "Boo!"
End If
End Sub
или же
=If(SheetExists("Test"),"Yay!","Boo")
Вы можете проверить на ошибку. например:
источник
Что-то вроде:
источник
это работает как ожидалось
источник