У меня есть файл MS Excel со многими листами, и мне нужно перейти к ним.
Как я могу перечислить все метки и перейти к определенной?
У меня есть файл MS Excel со многими листами, и мне нужно перейти к ним.
Как я могу перечислить все метки и перейти к определенной?
Интересно. Я только что написал три макроса, которые будут делать это достаточно хорошо. Первый макрос генерирует сводный лист (с именем sh_summary) в конце вашей рабочей книги и выбирает его. Затем на этом новом сводном листе вы выбираете одно из желаемых имен листов (например, выберите ячейку A2), а затем запускаете второй макрос, который будет выбирать / перемещаться к выбранному листу. Третий макрос вернет вас к сводному листу. 2-й и 3-й макросы должны быть ярлыками для быстрой навигации.
1:
Sub findSheets()
    Dim sheetNum As Integer
    Dim i As Integer
    Dim theSh(999)
    'count sheets:
    sheetNum = ActiveWorkbook.Worksheets.Count
    'check for a summary sheet and delete it if found:
    For i = 1 To sheetNum
        If ActiveWorkbook.Worksheets(i).Name = "sh_summary" Then
            Application.DisplayAlerts = False
            ActiveWorkbook.Worksheets(i).Delete
            Application.DisplayAlerts = True
        End If
    Next i
    'count sheets again:
    sheetNum = ActiveWorkbook.Worksheets.Count
    'get sheet names
    For i = 1 To sheetNum
        theSh(i) = ActiveWorkbook.Worksheets(i).Name
    Next i
    'create summary sheet:
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Select
    Sheets(Sheets.Count).Name = "sh_summary"
    'print sheet names on summary sheet:
    For i = 1 To sheetNum
        Cells(1, 1).Value = "Worksheet summary:"
        Cells((1 + i), 1).Value = theSh(i)
    Next i
End Sub
2:
Sub navToSheet()
    On Error Resume Next
    ActiveWorkbook.Worksheets(ActiveCell.Value).Select
    If Err.Number <> 0 Then
        MsgBox "Can't find sheet - select and try again."
        Err.Clear
    End If
End Sub
3:
Sub navToSummary()
    On Error Resume Next
    ActiveWorkbook.Worksheets("sh_summary").Select
    If Err.Number <> 0 Then
        MsgBox "Can't find summary sheet."
        Err.Clear
    End If
End Sub