セル値からループしてマルチキャプションを追加します
質問
いくつかのセル値をループすることによって、ユーザーフォームのマルチキャプスのページのキャプションを生成したいが、残念ながらユーザフォームが初期化されたときにエラーが発生します。
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
に変更したことも注意してください(整数の最大値は32768
のみ)。例については、32768
ページを超えるが、一般的には、最後の行を決定するときにLong
を使用するのは良い習慣です。
所属していません StackOverflow