从Excel中的多选列表框返回值

时间:2015-05-04 12:45:10

标签: excel-vba activex multi-select vba excel

我正在寻求以下代码的帮助。再次单击单元格时,我不希望清除复选框。如何更改此代码才能执行此操作?

Option Explicit
Dim fillRng As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim LBColors As MSForms.ListBox
Dim LBobj As OLEObject
Dim i As Long

Set LBobj = Me.OLEObjects("LB_Products")
Set LBColors = LBobj.Object

If Not Intersect(Target, [G2]) Is Nothing Then
    Set fillRng = Target
    With LBobj
        .Left = fillRng.Left
        .Top = fillRng.Top
        .Width = fillRng.Width
        .Visible = True
    End With
Else
    LBobj.Visible = False
    If Not fillRng Is Nothing Then
        fillRng.ClearContents
        With LBColors
            If .ListCount <> 0 Then
                For i = 0 To .ListCount - 1
                    If fillRng.Value = "" Then
                        If .Selected(i) Then fillRng.Value = .List(i)
                    Else
                        If .Selected(i) Then fillRng.Value = _
                            fillRng.Value & ", " & .List(i)
                    End If
                Next
            End If
            For i = 0 To .ListCount - 1
                .Selected(i) = False
            Next
        End With
        Set fillRng = Nothing
    End If
End If

1 个答案:

答案 0 :(得分:0)

这部分代码不是正在清算的部分吗?

For i = 0 To .ListCount - 1
  .Selected(i) = False
Next