用户窗体中的列表框

Listbox in Userform

我有一个 Excel 的用户表单,其中有一个员工姓名列表框。我从 Excel 工作表的 A 列中获取选项,因此它可以根据过去的条目自动完成用户表单中的条目。问题是每个员工的工作表中有多行条目,我想在下拉列表中只有一个名字。

填充列表框的代码是:

Private Sub UserForm_Initialize()
    Me.txtName.List = Worksheets("Sheet1").Range("A6:A600").Value

有办法吗?

If ListBox1.Range.Value...?

下面的代码使用助手 Dictionary 对象来确定项目是否已添加到 ListBox,如果没有,则添加它们。它还根据 A6 的起始单元格动态选择名称范围,并将电子表格向下移动到数据中的第一个中断点。如果有您想忽略的中断,请告诉我们。

我使用了ListBoxAddItem方法而不是List属性。

Private Sub UserForm_Initialize()
    Dim rNames As Range
    Dim oDict As Object
    Dim cel As Range

    Set rNames = Worksheets("Sheet1").Range("A6:A" & Worksheets("Sheet1").Range("A6").End(xlDown).Row)
    Set oDict = CreateObject("Scripting.Dictionary")

    For Each cel In rNames
        If oDict.exists(cel.Value) Then
            'Do nothing for now
        Else
            oDict.Add cel.Value, 0
            Me.txtName.AddItem cel.Value
        End If
    Next cel
End Sub