VBA列表框复制到列表框

用户名

好的,这似乎很疯狂,我已经研究了几个小时,但找不到任何有效的方法。这篇文章将几乎没有代码,但是我将非常快速地准确解释我要做什么。

因此,我有一个已成功填充的列表框,它可以正常工作。在用户指示的某个时候,用户将从列表框中选择一行,将其命名为RecordBox,查看一些信息,也许添加一些信息,然后单击“保存”命令按钮。单击此保存按钮后,我要将所选行从RecordBox复制到第二个列表框。我想称它为DetailsBox。

我或者需要一种方法来获取以标题,组合框条目和文本框条目的形式显示的数据,在“ DetailsBox”中添加一行并将信息复制到该行的特定列中,或者我需要简单地将所选行从RecordBox复制到DetailsBox。

无论如何,如果某些代码会有所帮助,请问一下,但除了命令按钮单击事件外,实际上没有任何其他内容。

我希望这将是足够的信息。

悉达思·劳特

就这么简单

ListBox2.AddItem ListBox1.List(ListBox1.ListIndex)

后续活动(来自评论)

我想我将把该行发送到工作表,然后从那里将其添加到另一个列表框中。

我相信您正在使用多列列表框。在这种情况下,上面的代码将仅将第一列添加到第二个列表框中。您需要遍历其余各列,以添加从中选择的行Listbox1

假设您的用户表单如下所示。我为您创建了一个小样本。

在此处输入图片说明

列表框的属性设置如下

在此处输入图片说明

这就是你的Sheet1样子。

在此处输入图片说明

现在,在用户窗体中使用此代码。

Private Sub UserForm_Initialize()
    '~~> Adding Sample Data to listbox 1
    ListBox1.List = ThisWorkbook.Sheets(1).Range("A1:E3").Value
End Sub

Private Sub CommandButton1_Click()
    Dim iIndex
    Dim i As Long, j As Long, k As Long

    With ListBox1
        i = .ListIndex

        ListBox2.AddItem .List(i, 0), 0

        j = ListBox2.ListCount - 1

        For k = 1 To .ColumnCount - 1
            ListBox2.List(j, k) = .List(i, k)
        Next k
    End With
End Sub

当您单击中的选择一个项目Listbox1并按命令按钮时,您会注意到从中选择的行Listbox1已成功复制到Listbox2

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章