Показать имена листов, используя VBA, чье имя содержит определенное слово - PullRequest
0 голосов
/ 20 сентября 2018

Используя приведенный ниже код, где я могу выбрать все листы, содержащие слово «ba», однако, если эти листы / вкладки скрыты, я не могу, я получаю «Ошибка времени выполнения» 1004': "warning.

Есть предложения, как заставить этот код работать со скрытыми листами / вкладками?Таким образом, он показывает имена всех листов / вкладок с «ba», даже если он скрыт?Если они скрыты, я хочу, чтобы они появились или .Visible = True

Sub listray()
Dim ws As Worksheet, flg As Boolean
For Each ws In Sheets
If LCase(ws.Name) Like "*ba*" Then
    ws.Select Not flg
    flg = True
End If
Next
End Sub
End Sub

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вам не нужно Select лист, чтобы скрыть / показать его.При этом будут циклически проходить листы, и будут видны только те листы, которые имеют имя Like "*ba*"

Sub listray()

Dim ws As Worksheet

Application.ScreenUpdating = False
    For Each ws In Sheets
        ws.Visible = LCase(ws.Name) Like "*ba*"
    Next
Application.ScreenUpdating = True

End Sub
0 голосов
/ 20 сентября 2018

Листы должны быть видны, чтобы их можно было выбрать.

If LCase(ws.Name) Like "*ba*" Then
    ws.Visible = xlSheetVisible
    ws.Select Not flg
    flg = True
End If
...