用列填充组合框
Posted
技术标签:
【中文标题】用列填充组合框【英文标题】:Populating Combo Box with column 【发布时间】:2022-01-24 02:43:06 【问题描述】:我一直在试图解决这个问题,但我发现的每一个解决方案都无济于事。
我正在尝试创建一个用户窗体,并且我想用它所连接的 Excel 工作表中的数据填充一个组合框。 Sheet 在 VBA 编辑器中的标题为“PrinterModels(打印机模型)”,该框的标题为 cmbModel。当我在其属性中填充带有Rowsource的框时,它填充,但选择项目时,它们会在选择其他项目时从列表中消失。我需要的是一种在代码中填充 Box 的方法,如果它的行为相同,我需要一种方法来在下次它被弄乱时重新填充盒子。我在下面发布了我的最新尝试,它给出了错误 1004
Private Sub UserForm_Initialize()
'cmbModel.List = PrinterModels.Range("A2:A").Value
ModelLast = PrinterModels.Cells(Rows.Count, 1).End(x1Up).Row
For i = 1 To ModelLast
Value = PrinterModels.Cells(i, 1).Value
cmbModel.AddItem Value
Next i
End Sub
【问题讨论】:
您是否将行源设置为工作表上的范围?我最近与此作斗争,这就是我解决它的方法。如果您需要添加项目,请将它们添加到工作表上的列表中,并使用扩展范围更新资源。x1Up
应该是xlUp
使用Option explicit
几乎可以完全避免此类错误
【参考方案1】:
好的,所以我在继续深入寻找后找到了答案,并在这里找到了解决方案*** 18088729
将答案代码更改为以下后,Box 填充了我想要的方式。
Private Sub UserForm_Initialize()
'cmbModel.List = PrinterModels.Range("A2:A").Value
With PrinterModels
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
For i = 1 To LastRow
myValue = PrinterModels.Cells(i, 1).Value
cmbModel.AddItem myValue
Next i
End Sub
【讨论】:
以上是关于用列填充组合框的主要内容,如果未能解决你的问题,请参考以下文章