我试图用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
我担心这是一个非常基本的问题但是在研究网站/谷歌之后我根本无法让这个简单的任务发挥作用。
任何帮助将不胜感激。
答案 0 :(得分:1)
无需循环,您可以将范围作为列表框的来源传递
Program_ListBox.List = Range("H2:H" & Lr)
答案 1 :(得分:0)
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