为每个或命名范围填充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的主要内容,如果未能解决你的问题,请参考以下文章