Как искать строку в имени листа? - PullRequest
1 голос
/ 28 июля 2011

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

 For Each Sheet In ActiveWorkbook.Sheets
  Name = ActiveSheet.Name
  Next Sheet

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

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

Ответы [ 3 ]

3 голосов
/ 28 июля 2011

Вы также можете использовать функцию InStr ... или, возможно, я не правильно понял ваш вопрос.

Sub CheckSheets()        
    Dim oSheet As Excel.Worksheet
            For Each oSheet In ActiveWorkbook.Sheets           
        If InStr(UCase(oSheet.Name), UCase("Sheet")) Then                
            Debug.Print oSheet.Name                
        End If            
    Next oSheet        
End Sub
3 голосов
/ 28 июля 2011
For Each sheet In ActiveWorkbook.Sheets
    If sheet.Name Like "*" & strSearch & "*" Then
        Debug.Print "Found! " & sheet.Name
    End If
Next

Вы перебираете все листы, но всегда используете ActiveSheet.Name в цикле. Для поиска шаблона вы можете использовать Like с подстановочным знаком *.

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