2011-07-31 23 views
1

我正在嘗試製作大量網頁。到目前爲止,它工作正常,我從代碼中添加了控件。有數百個,它使應用程序「沉重」。 現在我在初始化中添加了組合框中的所有東西,但我想要做的是在更改頁面時加載控件。 因此,當我啓動表單時,應該爲頁面1加載控件。我想要做的是當我單擊Multipage的第2頁加載它的組件(而不是在UserForm的初始化時添加它們)。 謝謝!如何在頁面被選中時加載內容?

+2

我認爲您在這裏快速運行Excel/VBA的限制。 – ja72

+0

是的ja72,我想我會......不幸的是他們不允許我在我的公司使用可執行文件,Excel是我唯一的工具。 –

回答

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 
+0

太棒了!非常感謝亞歷克斯! –

0

我覺得這是做

加載用戶窗體一個簡單的方法:UserForm.Show

在多頁值開始:UserForm.MultiPage1.Value = 0 「page1」當數組從零開始時

如果您希望不同的頁面更改.Value = 0進入頁面值 - 1

例如:

加載用戶窗體:UserForm.MultiPage1 。價值= 4:UserForm.Show

這將帶你到「第3頁」 多頁的在初始化用戶窗體

*編輯: 誤解了一下這個問題,我的代碼會帶你到頁面,但在更改pa時不會執行某些操作ges,請使用Alex的代碼代替

相關問題