Конкатенация и цикл через флажки и логические значения - PullRequest
0 голосов
/ 05 мая 2020

Код ниже извлекает значения из 10 флажков и применяет соответствующую логическую проверку.

Я борюсь с объединением флажка и логических имен в While l oop. Кто-нибудь поможет, пожалуйста?

If CheckD1.Value = True Then check1 = True
If CheckD2.Value = True Then check2 = True
If CheckD3.Value = True Then check3 = True
If CheckD4.Value = True Then check4 = True
If CheckD5.Value = True Then check5 = True
If CheckD6.Value = True Then check6 = True
If CheckD7.Value = True Then check7 = True
If CheckD8.Value = True Then check8 = True
If CheckD9.Value = True Then check9 = True
If CheckD10.Value = True Then check10 = True

Ответы [ 2 ]

1 голос
/ 05 мая 2020
• 1000 в UserForm с:
For i = 1 To 10

If Me.Controls("CheckD" & i).Value = True Then
    check(i) = True
End If

Next I

Просто для тех, кто знает, но на сегодняшний день узнал что-то новое!

1 голос
/ 05 мая 2020

Вам нужно использовать массив Check(1 To 10) вместо отдельных переменных check1 … check10 и что-то вроде UserForm1.Controls для доступа к вашим флажкам по имени переменной:

Dim Check(1 To 10) As Boolean

Dim i As Long
For i = 1 To 10
    Check(i) = UserForm1.Controls("CheckD" & i).Value
Next i

UserForm1 - это форма вашего установлены флажки от CheckD1 до CheckD10.

Если вы использовали элементы управления формой на листе, то это должно быть

Check(i) = (ThisWorkbook.Worksheets("Sheet1").Shapes("CheckD" & i).OLEFormat.Object.Value = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...