将userform multipage启动到特定页面

for*_*ums 3 excel vba excel-vba excel-2010

我有一个名为SheetBox的Userform

SheetBox包含一个3页的多页窗口

用于选择要导入的页面的"page1"
"page2"包含
用于选择要保护的页面的伪进度条"page3"

我现在需要的是一种在单击工作表上的按钮时打开Userform时打开特定页面的方法

例如:
ImportBttn打开userform的
第1页,ProtctBttn打开userform的 3 页

我这样做是为了减少我需要创建的userform数量,而不是创建3个单独的用户表单.这也有助于减少文件大小.

for*_*ums 8

这也有效

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
Run Code Online (Sandbox Code Playgroud)

这首先加载工作表,更改多页面并在之后显示它

但是感谢调用方法,当我需要知道什么按钮被按下时会很有用


bre*_*tdj 6

在UserForms Initialise事件中,用于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
Run Code Online (Sandbox Code Playgroud)