Я хочу построить опрос с использованием excel и vba. У меня есть таблица с вопросами и ответами. Когда начнется опрос, мой код отобразит ответы, заменив метки меток на форме. Я возьму их ответ и напишу их в столбце, используя значение «Истина» или «Ложное» флажка.Excel VBA: как пропустить флажки на основе имени
Переменная «aRow» - это количество ответов для каждого вопроса. «lastAns» - номер строки последнего ответа. В зависимости от количества ответов некоторые флажки будут скрыты, показаны. «CheckBox1» - «CheckBox4» - это имена флажков.
Следующий код работает, но он слишком длинный, и я хочу иметь лучший метод для циклического выбора и замены их меток каждый раз. Пожалуйста, покажите мне, как это сделать! Спасибо вам большое!
`lastAns = Cells(qRow, 5).End(xlDown).Row + 1
aRow = lastAns - qRow
If aRow >= 1 Then
Me.CheckBox1.Visible = True
Me.CheckBox1.Caption = Cells(qRow, 5)
Else: Me.CheckBox1.Visible = False
End If
If aRow >= 2 Then
Me.CheckBox2.Visible = True
Me.CheckBox2.Caption = Cells(qRow + 1, 5)
Else: Me.CheckBox2.Visible = False
End If
If aRow >= 3 Then
Me.CheckBox3.Visible = True
Me.CheckBox3.Caption = Cells(qRow + 2, 5)
Else: Me.CheckBox3.Visible = False
End If
If aRow >= 4 Then
Me.CheckBox4.Visible = True
Me.CheckBox4.Caption = Cells(qRow + 3, 5)
Else: Me.CheckBox4.Visible = False
End If
.....SAME CODE CONTINUES TILL 7...`
Рабочий код нуждается в оптимизации должны быть размещены на [Просмотр Кода] (https: // codereview.stackexchange.com/). AFAIK вам нужно будет создать имя элемента управления в виде строки и передать его как ключ к коллекции элементов управления. –