使用表格列填充VBA userform的组合框以及其他选项

时间:2017-05-08 10:16:57

标签: excel vba excel-vba combobox

我正在使用VBA表单开发一个应用程序。在一种形式中我有一个组合框,让用户选择客户名称,这个组合框的行源是一个命名范围(customers表的名称列)。一切正常,但我需要在组合框中添加一个或多个附加项目,这些项目不在表格列中。例如,我需要添加" All" cobmobox中的项目,因此用户可以选择特定的客户名称或全部。在其他地方,我不想添加"其他"组合框中的项目具有相同的行源,因此如果客户是新用户,则可以选择“其他”,然后在文本框中键入名称。

我尝试使用以下代码添加项目

Private Sub UserForm_Activate()
With Me.testCombo
.AddItem "All"
End With
End Sub

但我收到了错误 运行时错误' 70' 许可被拒绝

如果我从组合框中删除rowsource属性,那么上面的代码工作但只有一个项目" All"显示。

注意:我不想添加"全部"和"其他"在客户表中,这可能是简单的解决方案,但会导致其他问题。

1 个答案:

答案 0 :(得分:0)

谢谢大家的帮助,主要问题是权限,因为A.S.H说如果设置Rowsource则无法在ComboBox中添加任何项目。所以我从表单中的属性中删除了RowSource。并编写以下代码,似乎一切正常。我希望我的代码足够简单。

Private Sub fillComboBox()
        Dim comboData As Range

        With Me.CWR_CustName
            ' first option of comobobox will be All
            .AddItem "All"

            For RW_Cust = 1 To Range("tblCust").Rows.Count

                ' add each customer name from customer table name column
                .AddItem (Range("tblCust[Name]")(RW_Cust))

            Next RW_Cust

        End With
End Sub