СБ
Саша Белый

Код VBA работает с ошибкой, почему?

Помогите, пожалуйста, найти ошибку. Пишу тест в VBA в UserForm. В зависимости от того, куда поставили "галочку" в ответах, этот вариант ответа заносится на рабочий лист в колонку и помечается единичкой

If frmTest.obAns1.Value Then Sheets("Chapter02").Cells(RwCnt + 1, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 1, 4) = ""
If frmTest.obAns2.Value Then Sheets("Chapter02").Cells(RwCnt + 2, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 2, 4) = ""
If frmTest.obAns3.Value Then Sheets("Chapter02").Cells(RwCnt + 3, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 3, 4) = ""
If frmTest.obAns4.Value Then Sheets("Chapter02").Cells(RwCnt + 4, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 4, 4) = ""
If frmTest.obAns5.Value Then Sheets("Chapter02").Cells(RwCnt + 5, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 5, 4) = ""
If frmTest.obAns6.Value Then Sheets("Chapter02").Cells(RwCnt + 6, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 6, 4) = ""

If frmTest.cbxAns1.Value Then Sheets("Chapter02").Cells(RwCnt + 1, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 1, 4) = ""
If frmTest.cbxAns2.Value Then Sheets("Chapter02").Cells(RwCnt + 2, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 2, 4) = ""
If frmTest.cbxAns3.Value Then Sheets("Chapter02").Cells(RwCnt + 3, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 3, 4) = ""
If frmTest.cbxAns4.Value Then Sheets("Chapter02").Cells(RwCnt + 4, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 4, 4) = ""
If frmTest.cbxAns5.Value Then Sheets("Chapter02").Cells(RwCnt + 5, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 5, 4) = ""
If frmTest.cbxAns6.Value Then Sheets("Chapter02").Cells(RwCnt + 6, 4) = 1 Else _
Sheets("Chapter02").Cells(RwCnt + 6, 4) = ""

вот такой код. Вопрос с вариантами Option Button идет четвертым по счету, перед ним идет CheckBox, так вот когда я выбираю в Optopn Button ответ, то в рабочий лист заносятся несколько ответов из предыдущего вопроса (то есть вместо одной единички в рабочий лист пишется столько же, склоько было в предыдущем вопросе в CheckBox!!! 😞 Почему он не засчитывает единственно верные ответы, а копирует ответы предыдущие? Спасибо)

ВГ
Виталий Герасимов

Нельзя использовать выражение If - THEN - ELSE без END IF

If frmTest.obAns1.Value Then
Sheets("Chapter02").Cells(RwCnt + 1, 4) = 1
Else
Sheets("Chapter02").Cells(RwCnt + 1, 4) = ""
End If

If frmTest.obAns2.Value Then
Sheets("Chapter02").Cells(RwCnt + 2, 4) = 1
Else
Sheets("Chapter02").Cells(RwCnt + 2, 4) = ""
End If

В такой записи код и читается легче. Согласны?
А если еще и комментариев наставить, совсем классно будет! :)))

P.S. А еще это нагромождение кода можно выкинуть и реализовать все с помощью цикла
For Each Next
Но пока пишите как Вам удобнее. Сначала надо просто добиться работоспособности программы,
а потом уже упорядочивать код, делать его удобочитаемым, производительным, компактным и проч...

Похожие вопросы
php код почему то ошибки
как работать с вкладками в VBA?
Во что компилирует код VBA Excel?
Почему не работает функция Combin в VBA???
в чем ошибка? код на VBA
Проблема с кодом в VBA Excel
Помогите подправить код VBA
Помогите подправить код в VBA
Код VBA не могу разобраться. почему отметка не встает вообще?
Не работает как надо вложенный массив VBA, код в пояснении