在这上面浪费太多时间...... 我创建了一个动态数量的组合框,如下所示:
Set MyComboBox = myForm.Designer.Controls.Add("Forms.ComboBox.1", Name:="Combobox_" & x)
With MyComboBox
.Left = 100
.Top = 20 + x * 30
.Height = 16
.Width = 100
'add a few fields
For Each col In fields
myForm.CodeModule.InsertLines myForm.CodeModule.CountOfLines + 1, "Me.Combobox_" & x & ".AddItem (""" & CStr(col) & """)"
Next
End With
工作正常。最后我添加一个" OK"启动功能的按钮:
myForm.CodeModule.InsertLines myForm.CodeModule.CountOfLines + 1, "Private Sub cmd_1_Click()"
myForm.CodeModule.InsertLines myForm.CodeModule.CountOfLines + 1, "me.Hide"
myForm.CodeModule.InsertLines myForm.CodeModule.CountOfLines + 1, "Call BULK_DB_CHECK.Start_Check"
myForm.CodeModule.InsertLines myForm.CodeModule.CountOfLines + 1, "End Sub"
在这里我失败了:
Sub Start_Check()
UserForm2.Controls("Combobox_" & CStr(i)).ListIndex 'This is -1
UserForm2.Controls("Combobox_" & CStr(i)) 'This is ""
我只想读出Combobox的选定值,这不在userform代码中,而是在模块中。这与列表有关,但与Combobox失败....感谢您的帮助
答案 0 :(得分:0)
在你提及的部分失败了,你永远不会定义i
的价值。所以它试图找到“Combobox _”(因为i
是空的)。如果我没有弄错的话,它至少从1开始。
我也不确定Combobox
和ComboBox
之间的VBA是否存在差异,但我会使用ComboBox