gpt4 book ai didi

vba - Excel VBA - 如何从变量范围填充列表框的值?

转载 作者:行者123 更新时间:2023-12-03 00:12:38 25 4
gpt4 key购买 nike

我在名为“电子邮件”的工作表的 A 列中有一个姓名列表

我想用名称 Column A 填充用户窗体列表框。但是,我无法指定固定范围,因为此列表会增长和缩小。那么如何让用户表单使用正确数量的项目填充列表呢?

这是我目前正在尝试但不起作用的(我相信这里的一些人很明显知道为什么不这样做),我还看到了另一个使用简单的 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

编辑:

我现在有以下代码,但当我加载用户表单时它无法工作:

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

谁能给我指出正确的方向吗?

最佳答案

如果您想用 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

关于vba - Excel VBA - 如何从变量范围填充列表框的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21997533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com