用户窗体中的列表框
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
的起始单元格动态选择名称范围,并将电子表格向下移动到数据中的第一个中断点。如果有您想忽略的中断,请告诉我们。
我使用了ListBox
的AddItem
方法而不是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
我有一个 Excel 的用户表单,其中有一个员工姓名列表框。我从 Excel 工作表的 A 列中获取选项,因此它可以根据过去的条目自动完成用户表单中的条目。问题是每个员工的工作表中有多行条目,我想在下拉列表中只有一个名字。
填充列表框的代码是:
Private Sub UserForm_Initialize()
Me.txtName.List = Worksheets("Sheet1").Range("A6:A600").Value
有办法吗?
If ListBox1.Range.Value...?
下面的代码使用助手 Dictionary
对象来确定项目是否已添加到 ListBox
,如果没有,则添加它们。它还根据 A6
的起始单元格动态选择名称范围,并将电子表格向下移动到数据中的第一个中断点。如果有您想忽略的中断,请告诉我们。
我使用了ListBox
的AddItem
方法而不是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