Использование 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?
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