如何在页面被选中时加载内容?

我正在尝试制作一个有很多页面的表单。 到目前为止它工作正常,我从代码中添加了控件。 有数百个,它使应用程序“沉重”。 现在我在初始化中添加combobox中的所有东西,但是我想要做的是在更改页面时加载控件。 所以,当我开始表单控件应该加载页1,我想要做的是当我点击页面2的多页加载它的组件(而不是在UserForm初始化时添加它们)。 谢谢!

如果您只想在点击每个页面时初始化每个页面,则可以使用类似的方式跟踪哪个点击过;

Private mbInitialised() As Boolean Private Sub UserForm_Initialize() ReDim mbInitialised(MultiPage1.Pages.Count - 1) SetupPage 0 End Sub Private Sub MultiPage1_Change() SetupPage MultiPage1.Value End Sub Private Sub SetupPage(index As Integer) If (mbInitialised(index)) Then Exit Sub mbInitialised(index) = True MsgBox "init page " & index + 1 '//setup here End Sub 

我认为这是一个更简单的方法来做到这一点

加载用户窗体:UserForm.MultiPage1.Value = 0:UserForm.Show

当数组从零开始时,多页面值开始“page1”

如果你想不同的页面更改.Value = 0到页面值 – 1

例如:

加载UserForm:UserForm.MultiPage1 .Value = 4 :UserForm.Show

这会在初始化userform的时候带你到多页面的“page3”

*编辑:误解了一下这个问题,我的代码将带你到页面,但不改变页面时执行的东西,而不是使用亚历克斯的代码