Excel VBA Макросы: Как обратиться к листу, если заранее не известно его имя, но известно начало имени?

Автор SergeyPetrov, 08 июля 2019, 15:23

SergeyPetrov

Имя листа имеет постоянное и переменное значение: Лист*, где
Лист - это постоянное значение;
* - это переменное числовое значение, которое всегда разное и заранее не известно.

Как обратиться к такому листу в этом коде? То есть нужно вместо "Лист1" указать имя листа, которое заранее не известно, но точно известно, что оно начинается: Лист*.

Sub Signature()
    With Worksheets("Лист1").PageSetup
        .CenterHeader = "Конфиденциально. Только для служебного использования" & ""
    End With
End Sub

Администратор

Вверху модуля вставьте эти строки:
Option Explicit
Option Compare Text
Option Base 1

Предполагается, что в файле есть лист с нужным именем, поэтому перед запуском макроса проверьте, что в файле есть лист с нужным именем.

Символ "*" означает ноль или любое количество любых символов.

Макрос
Sub Макрос()

    Dim sh As Worksheet
   
   
    ' Просматриваем все листы.
    For Each sh In Worksheets
        ' Если у листа нужное имя, то выход из цикла.
        If sh.Name Like "Лист*" Then
            Exit For
        End If
    Next sh
   
    ' Здесь переменная "sh" будет нужным листом.
    With sh.PageSetup
        .CenterHeader = "Конфиденциально. Только для служебного использования" & ""
    End With
   
End Sub
[свернуть]