在用户窗体中的列表框

我有一个Excel的用户表单,它有一个用于员工姓名的列表框。 我从Excel工作表的A列中select选项,以便可以根据以前的条目自动完成用户表单中的条目。 问题是,在每个员工的工作表中有多行条目,我想在下拉列表中只有一个名称。

填充列表框的代码是:

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

有没有办法做到这一点?

 If ListBox1.Range.Value...? 

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

我使用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