Добавьте многостраничный заголовок, зацикливаясь на значениях ячеек
Вопрос
Я хотел бы сгенерировать подписи к страницам многостраничной формы пользователя путем перебора некоторых значений ячеек, но, к сожалению, я получаю сообщение об ошибке при инициализации формы пользователя.
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
Решение
Как следует из комментариев, этот вариант работает:
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
Также обратите внимание, что я изменил Dim pagecount As Integer
Для Dim pagecount As Long
(поскольку максимальное значение integer равно только 32768
).Для вашего примера маловероятно, что в нем будет больше, чем 32768
страниц, но в целом это хорошая практика для использования Long
при определении последней строки.
Не связан с StackOverflow