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
War es hilfreich?

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
scroll top