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

时间:2011-07-31 11:59:38

标签: excel vba excel-vba

我正在尝试制作包含大量页面的表单。到目前为止它工作正常,我从代码中添加了控件。有数百个,它使应用程序“沉重”。 现在我在初始化中添加了组合框中的所有内容,但我想要做的是在更改页面时加载控件。 因此,当我启动表单时,应该为第1页加载控件。我想要做的是当我点击Multipage的第2页来加载它的组件(而不是在UserForm的初始化时添加所有这些组件)。 谢谢!

2 个答案:

答案 0 :(得分:2)

如果您只想在点击每个页面时对其进行初始化,您可以使用类似的内容跟踪已点击的内容;

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

答案 1 :(得分:0)

我认为这是一种更简单的方法

  

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

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

如果你想要一个不同的页面更改.Value = 0进入页面值 - 1

例如:

  

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

这会在初始化userform时将您带到“page3”多页

*编辑:  误解了一下这个问题,我的代码会把你带到页面但是在更改页面时没有执行某些操作,而是使用Alex的代码