Pet*_*y87 2 excel vba listbox excel-vba listboxitem
我在名为"电子邮件"的工作表中的列A中有一个名称列表
我想用名称列A填充userform ListBox.但是,我无法指定固定范围,因为此列表将增长和缩小.那么如何让userform使用正确数量的项目填充列表?
这是我目前正在尝试但不起作用(我相信这里有些人会明白为什么不这样做),我也看到了另一个使用简单For循环的例子,但我无法再找到这个例子给你看.
Private Sub UserForm_Initialize()
Dim rngName As Range
Dim rng1 As Range
Dim rng2 As Range
Dim ws As Worksheet
Set ws = Worksheets("Email")
Set rngName = ws.Range("A:A").Find(What:="*", LookAt:=xlWhole, MatchCase:=False, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set rng1 = ws.Range("A1")
On Error GoTo ErrorHandle
Me.lbUsed.List = Range(rng1 & ":" & rngName).Value
ErrorHandle:
End Sub
Run Code Online (Sandbox Code Playgroud)
我现在有以下代码,但是当我加载userform时它无法工作:
Private Sub UserForm_Initialize()
Dim rngName As Range
Dim rng1 As Range
Set rngName = Worksheets("Email").Range("A:A").Cells.Find(What:="*", LookAt:=xlWhole, MatchCase:=False, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Set rng1 = Worksheets("Email").Range("A1:" & rngName.Address)
Me.lbUsed.List = Worksheets("Email").Range(rng1).Value
End Sub
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?
如果要使用A列中的所有项目填充列表框(假设这些项目在连续范围内),您可以通过修改如下代码来完成此操作:
Private Sub UserForm_Initialize()
Dim rngName As Range
Dim ws As Worksheet
Dim i As Integer
Set ws = Worksheets("Email")
For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Step 1
If ws.Cells(i, 1).Value <> vbNullString Then Me.lbUsed.AddItem ws.Cells(i, 1).Value
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59553 次 |
| 最近记录: |