Fügen Sie mehrseitige Beschriftungen hinzu, indem Sie eine Schleife aus Zellenwerten erstellen
Frage
Ich möchte die Beschriftungen für die Seiten eines Benutzerformulars mehrseitig generieren, indem ich einige Zellwerte durchlaufe, aber leider erhalte ich eine Fehlermeldung, wenn das Benutzerformular initialisiert wird.
Private Sub UserForm_Initialize()
Dim pagecount As Integer
Dim n As Integer
Dim name As Integer
pagecount = Sheets("SETUP").Range("B" & rows.Count).End(xlUp).Row - 5
n = 0
name = 6
With MultiPage1
Do
.Pages(n).Caption = Sheets("SETUP").Range("B" & name).Value
n = n + 1
name = name + 1
Loop Until n = pagecount
End With
End Sub
Lösung
Wie aus den Kommentaren hervorgeht, funktioniert dieser:
Private Sub UserForm_Initialize()
Dim pagecount As Long
Dim n As Long
pagecount = Sheets("SETUP").Range("B" & Rows.Count).End(xlUp).Row - 5
n = 0
With MultiPage1
Do
If n >= .Pages.Count Then .Pages.Add
.Pages(n).Caption = Sheets("SETUP").Range("B" & n + 6).Value
n = n + 1
Loop Until n = pagecount
End With
End Sub
Beachten Sie auch, dass ich mich geändert habe Dim pagecount As Integer
zu Dim pagecount As Long
(weil der Maximalwert der Ganzzahl nur ist 32768
).Für Ihr Beispiel ist es unwahrscheinlich, dass es mehr als hat 32768
seiten, aber im Allgemeinen ist es eine gute Übung zu verwenden Long
bei der Bestimmung der letzten Zeile.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow