为每个或命名范围填充 ListBox

For each or Named Range to populate ListBox

我只是想用一个遍历行的 For Each 循环来填充列表框。 for each 循环遍历命名范围 (ProgramID) 中的项目。

我目前使用的代码是

If Len(ProjectInformation.Range("H2").Value) = 7 Then

    Dim Lr As Long
    Lr = Range("H1048576").End(xlUp).Row
    For Each C In Range("H2:H" & Lr)
        With Program_ListBox
            .AddItem C.Value
        End With
    Next C

End If

我担心这是一个非常基本的问题,但是在研究了该网站后/google 我根本无法完成这个简单的任务。

如有任何帮助,我们将不胜感激。

不需要循环,可以通过range作为listbox的来源

Program_ListBox.List = Range("H2:H" & Lr)

Range("H2:H" & Lr) 引用 ActiveSheet 上的单元格。您应该始终完全限定您的推荐人。

With ProjectInformation
    If Len(.Range("H2").Value) = 7 Then
        For Each C In .Range("H2", .Range("H" & .Rows.Count).End(xlUp))
            With Program_ListBox
                .AddItem C.Value
            End With
        Next C
    End If
End With

无需循环单元格即可将值添加到列表框。您可以将 Range().Value 数组直接分配给 Listbox.List 数组。

 With ProjectInformation
    If Len(.Range("H2").Value) = 7 Then
        Program_ListBox.List = .Range("H2", .Range("H" & .Rows.Count).End(xlUp)).Value
    End If
End With