Использование VBA для подсчета количества незакрытых (видимых) листов слева от активного листа (excel)?



Я создаю анкету в excel, и меня попросили включить индикатор типа "Вы находитесь на листе X из Y" на каждой странице.



Количество видимых листов варьируется в зависимости от ответа на некоторые из ранних вопросов (нерелевантные наборы вопросов скрыты и т. д.), поэтому и числитель, и знаменатель в этом утверждении являются переменными.



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



Private Sub Worksheet_Activate()
If Range("AZ1").Value = "1" Then

Dim v
For Each s In ActiveWorkbook.Sheets
If s.Visible Then v = v + 1
Next s
ActiveSheet.Label1.Caption = "Currently viewing page X of " & v & vbCrLf

End If
End Sub


Это правильно записывает знаменатель в каждую метку на каждом листе.

Однако, чтобы найти числитель, мне нужно уметь находить количество незакрытых листов слева от активного листа.



Кто-нибудь знает, как я могу сделать это с помощью VBA?

644   1  

1 ответ:

Свойство Worksheet.Index-поможет вам здесь:

Dim n As Long
Dim i As Long

n = 0
For i = 1 To ActiveSheet.Index
    If ThisWorkbook.Worksheets(i).Visible Then 
        n = n + 1
    End If
Next

Debug.Print n

Comments

    Ничего не найдено.