Событие двойного щелчка в списке пользователей VBA - PullRequest
0 голосов
/ 29 января 2020

У меня есть пользовательская форма со списком, отображающим все элементы в таблице. в списке есть событие двойного щелчка, где; если строка, дважды щелкнувшая, содержит текст, она открывает форму редактирования. если строка, по которой дважды щелкнули мышью, пуста, то появится окно с сообщением, что «элемент недействителен для редактирования».

Я ищу, чтобы добавить новую функцию, если определенная ячейка в строке содержит « закрыто "отображается сообщение с сообщением" этот пункт закрыт и недействителен для редактирования.

Я не очень хорош в VBA, и я был бы признателен за любую помощь, которая может быть предложена. Ниже приведен текущий код I есть.

Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'Checks if the selected row is empty and outputs a message box if it is
    If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) = 0 Then _
        MsgBox "The selected item is empty and not a valid entry for editing"

'Checks if the selected row is closed and outputs a message box if it is
    If RiskLogReviewListBox.Column(11, 0) = "closed" Then _
        MsgBox "The selected item is closed and not a valid entry for editing"

'Checks if the selected row is populated
    If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) > 0 Then

Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Замените

 If RiskLogReviewListBox.Column(11, 0) = "closed" Then _

на

If Instr(RiskLogReviewListBox.Column(11, 0), "closed") > 0 Then _

Но, я полагаю, ваш код должен существовать в случае двух вышеописанных ситуаций. Итак, я бы также предложил использовать Exit Sub после сообщений ...

0 голосов
/ 29 января 2020

нашел решение

Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim i As Long

'Checks if the selected row is empty and outputs a message box if it is
    If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) = 0 Then _
        MsgBox "The selected item is empty and not a valid entry for editing"

'Checks if the selected row is closed and outputs a message box if it is
    If (RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 10)) = "closed" Then
        MsgBox "The selected item is closed and not a valid entry for editing"
            Exit Sub
    Else

'Checks if the selected row is populated
    If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) > 0 Then
...