2

我正在 excel 中构建一个问卷,并被要求在每一页上包含一个“你在 Y 表中的 X 表上”类型的指示器。

可见工作表的数量取决于对一些早期问题的回答(不相关的问题集被隐藏等),因此该语句中的分子和分母都是变量。

我在每个页面上都有一个标签(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 做到这一点?

4

1 回答 1

7

Worksheet.Index-Property 可以帮助您 :

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
于 2013-05-12T01:35:20.447 回答