Обнаружение изменения выбора в Excel VBA ListBox - PullRequest
0 голосов
/ 28 мая 2020

Мне нужно определить, когда в списке сделано изменение выбора, чтобы я мог записать значение на лист в тот момент, когда элемент выбран или отменен. чтобы запечатлеть это. OnChange не запускается, или OnClick. Я попытался использовать событие OnMouseUp, и оно срабатывает в нужный момент, но, похоже, затем отключает выбор - поэтому событие срабатывает, но в списке не регистрируется изменение статуса выбранной строки.

enter image description here

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вы можете использовать это, чтобы вызвать событие.

Private Sub ListBox1_Change()
    MsgBox "Something changed"
End Sub

Поместите это в код формы.

0 голосов
/ 28 мая 2020

Вы действительно должны использовать событие ListBox_Change, чтобы зафиксировать это. При любом изменении вам нужно будет перечислить элементы и посмотреть, выбраны ли они для обновления каких-либо данных рабочего листа

Например:

Private Sub ListBox1_Change()
    Dim wsTarget As Worksheet: Set wsTarget = Worksheets("Sheet1")
    Dim wsTargetRange As Range: Set wsTargetRange = wsTarget.Range("A1:A100")

    Dim i As Long, RowIndex As Long

    RowIndex = 1
    wsTargetRange.ClearContents

    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            wsTargetRange.Item(RowIndex) = ListBox1.List(i)
            RowIndex = RowIndex + 1
        End If
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...