为每个或命名范围填充ListBox

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为每个或命名范围填充ListBox相关的知识,希望对你有一定的参考价值。

所有我试图用For Each循环填充列表框,迭代遍历行。 for each循环遍历Named范围内的项目(ProgramIDs)。

我正在使用的当前代码是

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

我担心这是一个非常基本的问题但是在研究网站/谷歌之后我根本无法让这个简单的任务发挥作用。

任何帮助,将不胜感激。

答案

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
另一答案

无需循环,您可以将范围作为列表框的来源传递

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

以上是关于为每个或命名范围填充ListBox的主要内容,如果未能解决你的问题,请参考以下文章

VSCODE 片段 PHP 自动填充命名空间

从行数组填充ListBox

如何在 Javascript 中调用动态命名的方法?

自动填充到vba中的命名范围

使用 SQL 存储过程填充 ListBox

如何使用范围中的随机值填充数组? (重复没问题。)