如何动态获取当前多页面选项卡的值?

时间:2013-10-24 18:15:02

标签: excel vba tabs userform multipage

社区,我目前正在隐藏我的用户表单多页上的标签,但当前标签除外。用户可以单击按钮在页面之间来回切换。一些按钮共享子例程。当用户单击按钮时,一旦选择了新选项卡,它就会隐藏上一个选项卡。我想这是一个双重问题。

1)如何获取上一个标签选择值?

2)如何循环显示标签值?我的目标是针对所有其他标签测试当前标签标题或值。想想这将是一种隐藏它们的简单方法,无论哪个页面和哪个按钮调用子例程。

现在我只有一个标签按钮...

Sub NewCreditSetup()
    MultiPage1.Pages(1).Visible = True
    MultiPage1.Value = 1
    MultiPage1.Pages(0).Visible = False
    //More code displaying tab...irrelevant
End Sub  

2 个答案:

答案 0 :(得分:3)

您可以使用选项卡更改事件来确定选项卡的更改时间,并将当前选项卡index存储为变量。然后,再次更改选项卡时,此变量中的选项卡将成为上一个选项卡。

即:

Private iPrevTab As Integer
Private iCurTab As Integer

Private Sub MultiPage1_Change()
    iPrevTab = iCurTab
    iCurTab = MultiPage1.Index

    'You can also check here what that tab is to do something with it
    If MultiPage1.Value = MultiPage1.Pages("mySpecialPage").Index Then
        'Go Nuts
    End If

End Sub

然后,您可以遍历所有选项卡并检查其名称,标题或索引。例如:

Private Sub LoopTabs()
    Dim ii as Integer        

    for ii = 1 to MultiPage1.Pages.Count
        If MultiPage1.Pages(ii).Index = iPrevTab Then
           Debug.Print MultiPage1.Pages(ii).Name & " " & MultiPage1.Pages(ii).Caption
        End If
    Next ii
End Sub

可能还值得注意的是要小心显示和隐藏标签,因为它不常见并且可能会使用户感到困惑。我会把它留给你。

答案 1 :(得分:0)

我认为这会对您有所帮助。

Dim m As String
    m = MultiPage1.SelectedItem.Caption
MsgBox m
相关问题