Вот моя проблема:
У меня есть пользовательская форма с MultiPage. На первой странице у меня есть TextBox и CommandButton. Идея здесь заключается в том, что когда я ввожу число в свой TextBox и нажимаю CommandButton, я создаю номер нового TextBox, равный числу, введенному в первом TextBox. Кроме того, он также создает новый CommandButton.
Теперь я хочу назначить макрос этому новому CommandButton, созданному динамически.
Я использую этот post для помогите мне решить мою проблему, и она работает, если я хочу напечатать сообщение, как показано в сообщении.
В моем случае, что я хочу сделать, нажав новую CommandButton, это создать новые страницы в моей MultiPage используя имя, введенное в TextBoxes, созданный первым CommandButton.
У меня есть этот класс (он называется Classe3):
Option Explicit
Public WithEvents CmdEvents As MSForms.CommandButton
Private Sub CmdEvents_Click()
Dim multi_page As Object
Dim nb_blocks As Integer 'Represents the number entered in the first text box on the user form
Dim i As Integer
nb_blocks = Me.MultiPage1.Pages(0).UF4_TB_nbC.Value 'UF4_TB_nbC is the name of th first TextBox
For i = 1 To nb_blocks
Set multi_page = Me.MultiPage1.Pages.Add("page" + CStr(i), i)
With multi_page
.Caption = Me.MultiPage1.Pages(0).Controls("UF4_TB_nameBlock" + CStr(i)).Value 'Get the name from each TextBox created dynamically
End With
Next i
End Sub
В моей пользовательской форме у меня есть эта часть кода в моем Sub CommandButton1_Click () :
Set command_button = Me.MultiPage1.Pages(0).Add("Forms.CommandButton.1")
With command_button
.Height = 18
.Top = 96 + 18 * nb_blocks + 18
.Width = 60
.Left = 44
.Caption = "Ok"
.name = "UF4_CB2_Validation"
.Tag = 1
End With
ReDim Preserve cmdArray(1 To 1)
Set cmdArray(1).CmdEvents = command_button 'Assign the macro the the new CommandButton
Set command_button = Nothing
Поэтому, когда я запускаю свою пользовательскую форму и нажимаю вторую CommandButton, чтобы построить свои страницы, у меня появляется сообщение об ошибке из моего класса. Более конкретно из этой строки:
nb_blocks = Me.MultiPage1.Pages(0).UF4_TB_nbC.Value
В сообщении об ошибке говорится, что MultiPage1 не может быть найден.
Возможно, проблема связана с аргументом Me , но я ' Я не уверен. Если у вас есть идея, будет приятно обсудить ее, чтобы решить мою проблему.