Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何动态获取当前多页选项卡值的值?_Excel_Vba_Tabs_Userform_Multipage - Fatal编程技术网

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

Excel 如何动态获取当前多页选项卡值的值?,excel,vba,tabs,userform,multipage,Excel,Vba,Tabs,Userform,Multipage,社区中,我当前正在用户窗体多页上隐藏我的选项卡,但当前选项卡除外。用户可以单击按钮在页面之间来回切换。一些按钮共享子例程。当用户单击按钮时,一旦选择了新选项卡,它将隐藏上一个选项卡。我想这是一个双重问题 1) 如何获取上一个选项卡选择值 2) 如何循环使用选项卡值?我的目标是对照所有其他选项卡测试当前选项卡标题或值。我想这将是一种隐藏它们的简单方法,不管哪个页面和哪个按钮调用子例程 现在我只有一个标签按钮 Sub NewCreditSetup() MultiPage1.Pages(1).

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

1) 如何获取上一个选项卡选择值

2) 如何循环使用选项卡值?我的目标是对照所有其他选项卡测试当前选项卡标题或值。我想这将是一种隐藏它们的简单方法,不管哪个页面和哪个按钮调用子例程

现在我只有一个标签按钮

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

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

即:

然后,您可以循环浏览所有选项卡,并对照其名称、标题或索引进行检查。例如:

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

可能还值得注意的是,要小心显示和隐藏选项卡,因为这并不常见,可能会混淆用户。不过我会让你决定的

我想这会对你有帮助

Dim m As String
    m = MultiPage1.SelectedItem.Caption
MsgBox m

你说的“按钮”是什么意思?你能附上一张显示“按钮”的屏幕截图吗?您是否尝试过“页面”事件,以捕获这些事件并触发相应的操作…?这很好地解决了问题。感谢您在网站上的支持。我同意你的逻辑。在这个过程中,我也尝试了这种方法。对于每个更改为页面的按钮,我都使用相同的例程来显示内容。我检查当前页面的值是否是给定给目标页面的页面。如果不是,我将其赋值为x。然后我使当前页面不可见。(除主页外,所有选项卡均不可见)。然后,我使目标页面可见。再次感谢,干得好。您还可以使用它来记住表单的状态。也就是说,如果用户在第二个选项卡上并将其关闭,下次加载时,您可以将其设置为该选项卡。
Dim m As String
    m = MultiPage1.SelectedItem.Caption
MsgBox m