Исходный код от 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