用列填充组合框

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

【讨论】:

以上是关于用列填充组合框的主要内容,如果未能解决你的问题,请参考以下文章

如何从同一表单中的另一个组合框填充组合框?

如何根据从另一个组合框进行的选择来填充组合框

尝试根据另一个组合框的选择填充两个组合框

用列不匹配的另一个数据框中的数据填充数据框[关闭]

Excel VBA文本框以填充组合框

单击时在JavaFX中填充组合框