Почему я продолжаю получать ошибку в множественном выборе списка - PullRequest
0 голосов
/ 19 сентября 2019

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

Private Sub CommandButton2_Click()

    myVAR = ""

    For x = 0 To Me.Requirements.ListCount - 1
        If Me.Requirements.Selected(x) Then
            If myVAR = "" Then
                myVAR = Me.Requirements.List(x, 0)
            Else
                myVAR = myVAR & "," & Me.Requirements.List(x, 0)
        End If
    Next x

    ThisWorkbook.Sheets("sheet1").Range("v2") = myVAR
    Me.Hide

End Sub

1 Ответ

2 голосов
/ 19 сентября 2019

Исходный код от rev 1 лучше подчеркивает проблему, чем текущий код в OP:

Private Sub CommandButton2_Click()

myVAR = ""

For x = 0 To Me.Requirements.ListCount - 1
If Me.Requirements.Selected(x) Then
If myVAR = "" Then
myVAR = Me.Requirements.List(x, 0)
Else
myVAR = myVAR & "," & Me.Requirements.List(x, 0)
End If
Next x

ThisWorkbook.Sheets("sheet1").Range("v2") = myVAR
Me.Hide

End Sub

Если вы не знаете, как правильнои последовательно сдвигая свой код, вы можете использовать инструмент indenter , а затем вы можете просто следовать уровням отступа:

For x = 0 To Me.Requirements.ListCount - 1
|   If Me.Requirements.Selected(x) Then
|   |   If myVAR = "" Then
|   |   |   myVAR = Me.Requirements.List(x, 0)
|   |   Else
|   |   |   myVAR = myVAR & "," & Me.Requirements.List(x, 0)
|   |   End If
|   Next x '<~ not lined up!
*woopsie*

Ссылаясь на код, как он появляется в текущей ревизии,внутренний блок If...Else не завершен, поэтому компилятор берет external End If на свое место, а затем сталкивается с Next, когда ожидает End If - отсюда и «следующий бездля "ошибка компиляции.

Правильный код будет:

For x = 0 To Me.Requirements.ListCount - 1
|   If Me.Requirements.Selected(x) Then
|   |   If myVAR = "" Then
|   |   |   myVAR = Me.Requirements.List(x, 0)
|   |   Else
|   |   |   myVAR = myVAR & "," & Me.Requirements.List(x, 0)
|   |   End If
|   End If
Next x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...