У меня есть следующее, которое добавляет 1 editBox и 1 comboBox каждый раз, когда я нажимаю кнопку в пользовательской форме:
Sub addCable()
'TextBox creation
Dim editTxtBox As MSForms.Control
Static iTxtBox As Integer
Set editTxtBox = Me.Controls.Add("Forms.TextBox.1")
iTxtBox = iTxtBox + 1
cbxs.Add editTxtBox
', editTxtBox.Name
With editTxtBox
.Name = "txtBox" & iTxtBox
.Top = iTxtBox * editTxtBox.Height + 10
.Left = 20
End With
'ComboBox creation
Dim editCmpBox As MSForms.Control
Static iCmpBox As Integer
Set editCmpBox = Me.Controls.Add("Forms.ComboBox.1")
iCmpBox = iCmpBox + 1
cbxs.Add editCmpBox
', editCmpBox.Name
With editCmpBox
.Name = "cmBox" & iCmpBox
.Top = iCmpBox * editCmpBox.Height + 10
.Left = 130
.List = Array("60", "125", "45")
End With
End Sub
Я хочу реализовать функцию отмены, так как она удаляет последний exitBox и последний comboBox, созданный при нажатии на кнопку.
Я думал обойти мою коллекцию cbxs и удалить ее по индексу iTxtBox, поскольку iTxtBox является глобальной переменной:
Dim num As Integer
MsgBox (iTxtBox)
For num = iTxtBox To cbxs.Count
cbxs.Remove iTxtBox
Next
Но это не работает, я думаю, это потому, что мой цикл выходит за рамки, которые я ищу ....