VBA Excel使用列表框项填充单个单元格

mnemlml8  于 2023-04-13  发布在  其他
关注(0)|答案(2)|浏览(186)

如何将列表框中的所有项目传递到VBA中具有逗号分隔符的单个单元格中?
下面是我当前的代码,我将每一项传递给一个数组,然后将单元格的值设置为数组,但它不起作用。

Dim histReturn() As Long
        Dim j As Integer
        For j = 0 To Me.history_lbx.ListCount - 1
            ReDim Preserve histReturn(j)
        Dim x As Variant
        For Each x In histReturn
            Cells(i, 4).Value = Cells(i, 4).Value & x & ", "
        Next x
wqlqzqxt

wqlqzqxt1#

根本不需要循环。

Sub Demo
    Dim rng as Range
    Set rng = Cells(1, 1)

    If history_lbx.ListCount = 0 Then
        rng = vbNullString
    Else
        rng = Join(Application.Transpose(history_lbx.List), ",")
    End If
End Sub
pprl5pva

pprl5pva2#

如果你想使用一个数组,你不应该在一个循环中重新调暗,而是一劳永逸,因为你知道维度:但是你的数组从来没有得到任何值,所以当你的第二个循环试图在其中找到ListBox项时,它不能。
这里有一个想法,循环获取ListBox项,添加到String中,然后将结果放入Cell中。

Dim S As String
If history_lbx.ListCount = 0 Then
    Cells(1, 1).Value = ""
Else
    S = history_lbx.List(0)
    For i = 2 To history_lbx.ListCount
        S = S & ", " & history_lbx.List(i - 1)
    Next i
    Cells(1, 1).Value = S
End If

相关问题