Я понимаю, что чаще всего эта ошибка возникает, когда есть неисчерпаемая, если я не могу ее найти. Я полный новичок в Excel VBA, поэтому, пожалуйста, несите меня. Вот мой код. В принципе, суть этого макроса заключается в том, чтобы прочитать выбранное сопряжение значений в a9 и b9, а затем выполнить поиск по списку результатов, пока он не будет соответствовать значениям в a9 и b9, а затем добавить 1 к столбцу в этой конкретной строке.Ошибка компиляции: do without loop
Dim z As Integer
z = 42
'If selected adc = adc in row z
' Then if selected sp = sp in row z
'Add 1 to win column in row z
If [a9] = [g[z]] Then
If [b9] = [h[z]] Then
[i[z]] = [i[z]] + 1
End If
'Elseif selected adc =/= adc in row z
'Then add 1 to row
'Do until selected adc = adc in row z
ElseIf [a9] <> [g[z]] Then
z = z + 1
Do Until [a9].Text = [g[z]].Text
Exit Do
'If selected sp = sp in row z
'Then add 1 to column h (win column) in row z
If [b9] = [h[z]] Then
[i[z]] = [i[z]] + 1
End If
'If selected sp =/= sp in row z
'Then add 1 to row
'Do until selected sp = sp in row z
If [b9] <> [h[z]] Then
z = z + 1
Do Until [b9].Text = [h[z]].Text
Exit Do
If [b9] = [h[z]] Then
[i[z]] = [i[z]] + 1
End If
Это точно так же, как ошибка говорит вам: «У вашего' Do' нет «Loop». » ('Exit Do' похоже на' Exit For', не заменяющий конец этого утверждения) –