【问题标题】:Listbox in Userform用户窗体中的列表框
【发布时间】:2015-07-17 04:19:05
【问题描述】:

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

填充列表框的代码是:

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

有没有办法做到这一点?

If ListBox1.Range.Value...?

【问题讨论】:

  • 填充listbox的当前代码是什么?
  • @user3561813,我已经编辑了问题。

标签: vba excel listbox


【解决方案1】:

下面的代码使用帮助器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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2019-02-21
    • 2018-09-27
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    相关资源
    最近更新 更多