Я получаю ошибку компиляции «Else without If» в следующей части моего кода. В чем проблема и как это исправить?Cascading if statement not working
If InStr(1, Worksheets("Raw data").Cells(i, 3), "1M") Then Call RowCopyPaste("AS-001", i, counter1M)
counter1M = counter1M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "2M") Then Call RowCopyPaste("AS-001", i, counter2M)
counter2M = counter2M + 1
ElseIf InStr(1, Worksheets("Raw data").Cells(i, 3), "3M") Then Call RowCopyPaste("AS-001", i, counter3M)
counter3M = counter3M + 1
End If
Хороший ответ. Возможно, в то время как вы на нем могли бы упомянуть, как «Call» можно отказаться, поскольку это сделает код более идиоматичным. –
В то время как 'Call' не нужен и немного назад, программисты будут использовать его, чтобы сделать свой собственный код более понятным для себя. Я думаю, возможно, этот комментарий и ваш должны служить тому, чтобы другие знали, что они могут обойтись без 'Call', если они также удаляют скобки, окружающие параметры. – Jeeped
Способ подсчета VBA (без 'Call') * * немного нечетный и требует некоторого привыкания. Вы правы, что, вероятно, достаточно оставить его в качестве комментария. –