Ich habe ein einziges Benutzerformular mit 3 "Top-Level" Seiten (mit der Multipage-Funktionalität) und dann 4 verschachtelten Seiten jeweils innerhalb von 2 der Top-Level-Seiten. Siehe Beispielbild unten. Ich habe eine schwierige Zeit, programmatisch auf die verschachtelten Seiten zu verweisen.EXCEL VBA: Auswählen bestimmter Seiten in einem Benutzerformular, wenn MultiPages verschachtelt sind
Screenshot of Nested Multipage Userform
In diesem Beispiel sind die Seitenbeschriftungen und Namen gleich. Daher wird die Seite mit der Beschriftung von Page4 auch als Page4 bezeichnet. Ich fand jemand anderes Code online, der die Seite Index zurückkehren soll, wenn der Name der Seite, um es übergeben wird:
===
Funktion fMpIndex (ByVal Seitenname As String)
Dim PageCounter As Long
With MultiPage1
For PageCounter = 0 To .Pages.Count - 1
If .Pages(PageCounter).Name = PageName Then fMpIndex = PageCounter: Exit Function
Next PageCounter
End With
fMpIndex = -1
End Funktion
===
Dies funktioniert gut für die Top-Level-Seiten, aber wenn ich versuche, so etwas wie:
012.351.MsgBox ("Diese Seite des Index" & fMpIndex ("Page5"))
für jede der verschachtelten Seiten (in diesem Beispiel beide Seiten 4 & 5), dann gibt die Methode einen Wert von -1 zeigt an, dass die Seite nicht existiert, aber offensichtlich tut es das. Ist das ein Problem mit dem Umfang? Sucht der obige Code nur nach den Seiten der obersten Ebene und nicht nach den verschachtelten Seiten?
Was ist der sicherste und zuverlässigste Weg, um eine bestimmte Seite programmatisch auf einen Namen oder eine Beschriftung oder auf beides zu verweisen? Ich nehme an, es wäre so etwas wie:
die Seite strip.which page.name userform.which („Page5“)
In diesem Beispiel habe ich nur 1 Userform haben, aber ich möchte wissen: Was ist, wenn Ich hatte 2 Benutzerformulare? Auch im obigen Beispiel nehme ich bereits an, dass man angeben muss, auf welchen der beiden Seitenstreifen verwiesen wird ... das ist jetzt eine Annahme von mir und ist möglicherweise nicht notwendig.
Idealerweise möchte ich einen absoluten Verweis auf jede Seite im Benutzerformular verwenden, unabhängig davon, ob es sich um eine Seite der obersten Ebene oder eine verschachtelte Seite handelt. Wenn es tatsächlich so etwas wie die obige Spezifikation gibt, kann jemand bitte Beispielcode angeben?
Danke,
Dan