Проверьте или проверьте, существует ли лист - PullRequest
97 голосов
/ 14 июля 2011
Dim wkbkdestination As Workbook
Dim destsheet As Worksheet

For Each ThisWorkSheet In wkbkorigin.Worksheets 
    'this throws subscript out of range if there is not a sheet in the destination 
    'workbook that has the same name as the current sheet in the origin workbook.
    Set destsheet = wkbkdestination.Worksheets(ThisWorkSheet.Name) 
Next

В основном я перебираю все листы в исходной рабочей книге, а затем задаю destsheet в целевой книге для листа с тем же именем, что и текущий итерированный в исходной рабочей книге.

Как я могу проверить, существует ли этот лист? Что-то вроде:

If wkbkdestination.Worksheets(ThisWorkSheet.Name) Then 

Ответы [ 21 ]

0 голосов
/ 07 марта 2014

У меня действительно был простой способ проверить, существует ли лист, и затем выполнить некоторую инструкцию:

В моем случае я хотел удалить лист и затем воссоздал тот же лист с тем же именем, но код былпрерывается, если программа не смогла удалить лист, так как он уже был удален

Sub Foo ()

    Application.DisplayAlerts = False

    On Error GoTo instructions
    Sheets("NAME OF THE SHEET").Delete

    instructions:

    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "NAME OF THE SHEET"

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...