检测在Excel表单多页表单(不是VBA多页)按钮按下事件(Detect Button Press

2019-09-29 08:47发布

我在努力弄清楚如何直接驻留在Excel表单多页窗体上检测到按钮按下事件。 换句话说,使用VBA不产生形式,它被直接内置在片材上。

我希望的语法是这样的:

Private Sub MultiPage1_Frame1_CommandButton1_Click()
    Do Stuff
End Sub

然而,因为我觉得我还需要在多页到指定页面不起作用。 例如,相同的形式上的文本框可以通过以下方式访问:

MultiPage1.Pages(0).Frame1.TextBox1.Text = "Some Text"

不幸,

Private Sub MultiPage1_Pages(0)_Frame1_CommandButton1_Click()

给出了一个编译错误:预期:标识符与所选择的内部零(0)。

所以,我怎么转换

MultiPage1.Pages(0).Frame1.CommandButton1 

到将检测按钮按下事件子的名字吗?

谢谢!

Answer 1:

我不知道,但我想你可能无意中发现了一个错误。

有一个Microsoft窗体下其他控件 2.0控制,但我敢肯定,这只是仅用于用户窗体上使用。

我试着将它添加到一个工作表,并得到了一个错误。 但是,一旦我添加一个用户窗体,又回到了工作,我能够加入...但事情变得“出问题”的那一刻,当我打开的属性对话框的BOD,字体被渲染不佳。

所有这一切我看着(如文档, 这样 , 这个和这个 )只有在用户窗体中使用这样的例子,或者在Outlook中。

有许多类型的ActiveX控件,而不是所有的人都可以在任何地方使用。 根据经验,在Excel中的规则,这是最好的坚持所内置的控制。

此外,从另一个论坛:

:看来我无法找到并添加多页管制成的工作表。 如何添加多页控件Excel工作表?

:除非你把它放在用户窗体第一,你不能在工作表中显示。 用户窗体提供用户界面以VBA。 该MultiPagecontrol设计与该用户界面,而不是Excel工作表的工作。 是否有使用窗体显示MutliPage控制出了问题? 来源: 利思罗斯

这方面的证据结合告诉我, 就算你能得到它的工作, 你不应该 。 有没有预测它会如何表现。


如果你决定使用多页在用户窗体,请注意,在你上面的例子, MultiPage1控件的名称; 这不是指“第1页”。 作为一个整体的控制有一个Click事件,这是不特定的页面:

Private Sub MultiPage1_Click(ByVal Index As Long)

为了完整起见,我会贴一个完整的代码示例中,但再次:这是不推荐用于基于工作表控制。

如何在多页控件访问一个页面

下面的例子访问在几个方面多页的个人页面:

  • 使用Pages集合了数字索引。

  • 使用在多页的个人页面的名称。

  • 使用SelectedItem属性。

为了使用本例中,此示例代码复制到一个形式脚本编辑器 。 请确保该窗体包含一个名为多页 MultiPage1和一个名为命令按钮 CommandButton1

Sub CommandButton1_Click()
    Dim PageName
    Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2").MultiPage1

    For i = 0 To MultiPage1.Count - 1
        'Use index (numeric or string)
        MsgBox "MultiPage1.Pages(i).Caption = " & MultiPage1.Pages(i).Caption
        MsgBox "MultiPage1.Pages.Item(i).Caption = " & _
            MultiPage1.Pages.Item(i).Caption

        'Use Page object without referring to Pages collection
        If i = 0 Then
            MsgBox "MultiPage1.Page1.Caption = " & MultiPage1.Page1.Caption
        ElseIf i = 1 Then
            MsgBox "MultiPage1.Page2.Caption = " & MultiPage1.Page2.Caption
        End If

        'Use SelectedItem Property
        MultiPage1.Value = i
        MsgBox "MultiPage1.SelectedItem.Caption = " & _
            MultiPage1.SelectedItem.Caption
    Next
End Sub

来源


现在,我要删除工作表马车并重新启动 ; 我建议你做同样的!



Answer 2:

Mikerickson和加法尔Tribak上MrExcel.com想通了:

https://www.mrexcel.com/forum/excel-questions/1054446-detect-button-press-event-excel-sheet-multipage-form-not-vba-userform-multipage-2.html

非常感谢两位!



文章来源: Detect Button Press Event on an Excel Sheet MultiPage Form (NOT a VBA MultiPage)