Pregunta

Me gustaría generar los subtítulos para las páginas de un multipage de forma de usuario al bucle a través de algunos valores de células, pero desafortunadamente recibo un error cuando se inicializa el formulario de usuario.

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

¿Fue útil?

Solución

Como seguimiento de los comentarios, este funciona:

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

También tenga en cuenta que he cambiado Dim pagecount As Integer a Dim pagecount As Long (porque el valor máximo del entero es solo 32768).Por su ejemplo, es poco probable que tenga más que las páginas 32768, pero en general es una buena práctica para usar Long al determinar la última fila.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top