VBA:用ArrayList填充列表框

问题描述 投票:0回答:2

有人知道如何将

ArrayList
添加到用户表单中的
ListBox
中吗? 我已在
UserForm1
模块中尝试过此代码,但当
UserForm1
窗口打开时,它不会显示任何内容。

Public Sub here()
Dim MyList As Object
Set MyList = CreateObject("System.Collections.ArrayList")

MyList.Add "Item1"
MyList.Add "Item2"
MyList.Add "Item3"

UserForm1.ListBox1.List = MyList
End Sub

我读过一些文章,我知道我需要激活

mscordlib.dll
库,但我不知道我还能做些什么来使其工作。

编辑

这是带有实际程序的用户表单:

excel vba arraylist userform
2个回答
1
投票

经过调整后,这对我来说效果很好

MyList.Array
..

就像 FaneDuru 所说,你需要以某种方式触发你的潜艇;在本例中,我使用了用户窗体的单击事件。要显示这 3 个项目,唯一需要做的就是单击表单,瞧。 通常,您希望将其链接到表单上或用户表单初始化中的按钮(该按钮的单击事件),如下所示:

Private Sub UserForm_Initialize()
    here2
End Sub

Private Sub here2()
    Dim MyList As Object
    Set MyList = CreateObject("System.Collections.ArrayList")
    
    MyList.Add "Item1"
    MyList.Add "Item2"
    MyList.Add "Item3"
    MyList.Add "Yes!"
    
    UserForm1.ListBox1.List = MyList.ToArray
End Sub


0
投票

用数组列表填充列表框

UserForm1
模块

Private Sub UserForm_Initialize()
    Me.ListBox1.List = GetListboxData
End Sub

标准模块

Module1

Function GetListboxData() As Variant
    
    Dim MyList As Object: Set MyList = CreateObject("System.Collections.ArrayList")

    MyList.Add "Item1"
    MyList.Add "Item2"
    MyList.Add "Item3"
    
    GetListboxData = MyList.ToArray

End Function
    
Sub ShowForm()
    With New UserForm1
        .Show
        ' Continue with your code...
    End With
End Sub
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.