我有一个名为SheetBox的用户窗体
SheetBox包含一个 3 页的多页窗口
"page1" 用于选择要导入的工作表
"page2" 包含一个伪进度条
"page3" 用于选择要保护的工作表
我现在需要的是一种在单击工作表上的按钮时打开用户窗体时打开特定页面的方法
例如:
ImportBttn打开用户表单的第 1 页
ProtctBttn打开用户表单的第3页
我这样做是为了减少我需要创建的用户表单的数量,而不是创建 3 个单独的用户表单。这也有助于减小文件大小。
我有一个名为SheetBox的用户窗体
SheetBox包含一个 3 页的多页窗口
"page1" 用于选择要导入的工作表
"page2" 包含一个伪进度条
"page3" 用于选择要保护的工作表
我现在需要的是一种在单击工作表上的按钮时打开用户窗体时打开特定页面的方法
例如:
ImportBttn打开用户表单的第 1 页
ProtctBttn打开用户表单的第3页
我这样做是为了减少我需要创建的用户表单的数量,而不是创建 3 个单独的用户表单。这也有助于减小文件大小。
这也有效
Sub ImportBttn_Click()
Load SheetBox: SheetBox.MultiPage1.Value = 0: SheetBox.Show
End Sub
Sub ProtctBttn_Click()
Load SheetBox: SheetBox.MultiPage1.Value = 2: SheetBox.Show
End Sub
这首先加载 sheetbox,更改多页页面,然后显示它
但是感谢调用者方法,当我需要知道按下哪个按钮时会很有用
在 UserFormsInitialise
事件中,用于Application.Caller
检测工作表上的哪个按钮被按下,然后设置multipage
Private Sub UserForm_Initialize()
Select Case Application.Caller
Case "ImportBttn"
`1st tab
Me.MultiPage1.Value = 0
Case "ProtctBttn"
`3rd tab
Me.MultiPage1.Value = 2
End Select
End Sub
我的项目使用了几个多页。由于选项卡的用户定义名称是动态的,因此我将默认选项卡设置为 ...
Sub iconDailyEntry_Click()
Call init_GUI(frmGUI.mulGUI, "pgDaily")
End Sub
Sub init_GUI(mPage As MSForms.MultiPage, pgName As String)
mPage.Value = mPage(pgName).Index
mPage.Parent.Show
End Function
冲洗并重复每个按钮的点击事件。干杯。