1

Я работаю над файлом Excel, который имеет МНОГО листов, что делает навигацию между листами головной болью.

Есть ли способ показать листы в столбце слева (вместо строки под ячейками), чтобы я мог видеть больше сразу и, возможно, искать проще.

1 ответ1

2

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

И вы сможете перемещаться между листами, просто нажав на название листа.

Private Sub Worksheet_Activate()

    Dim xSheet As Worksheet
    Dim xRow As Integer
    Dim calcState As Long
    Dim scrUpdateState As Long

Application.ScreenUpdating = False
    xRow                       = 1

    With Me
        .Columns(1).ClearContents
        .Cells(1, 1) = "Sheet-INDEX"
        .Cells(1, 1).Name = "SheetIndex"
    End With

    For Each xSheet In Application.Worksheets
        If xSheet.Name <> Me.Name Then
            xRow                     = xRow + 1
            With xSheet
                .Range("A1").Name = "Start_" & xSheet.Index
                .Hyperlinks.Add anchor: = .Range("A1"), Address: = "", _
                SubAddress:             = "Index", TextToDisplay: = "Back to Index"
            End With
            Me.Hyperlinks.Add anchor: = Me.Cells(xRow, 1), Address: = "", _
            SubAddress: = "Start_" & xSheet.Index, TextToDisplay: = xSheet.Name
        End If
    Next

    Application.ScreenUpdating = True

End Sub

Как это устроено:

  1. Создайте новый лист и переименуйте его по вашему выбору. как SheetList или ListOfSheets.

  2. Щелкните правой кнопкой мыши на новой вкладке имени листа и выберите View Code из меню.

  3. В появившемся окне Copy and Paste выше показан код VBA в него.

  4. Теперь запустите макрос, чтобы создать динамический список рабочих листов.

Обратите внимание, или как только вы нажмете на вкладку «Новый лист», код создаст список листов, так как код предназначен для события «Активация рабочего листа».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .