Как адаптировать структуру цикла к предпочтениям пользователя? - PullRequest
1 голос
/ 25 февраля 2012

Я использую цикл для заполнения коллекции. Существует несколько свойств для каждого элемента коллекции, но некоторые из этих свойств являются необязательными. Пользователю предлагается выбрать, какие свойства будут скопированы в коллекцию. Можно ли опустить код для необязательных свойств, если пользователь решил их игнорировать?

Sub fillcoll()
    Dim coll as Collection
    Set coll = New Collection
    Dim NewItem as Class1

    For each r in Selection.Rows
        Set NewItem = New Class1

        If Userform1.Checkbox1.Value = True then
            NewItem.Property1 = somearray1(r.Row)
        End If

        If Userform1.Checkbox2.Value = True then
            NewItem.Property2 = somearray2(r.Row)
        End If

        If Userform1.Checkbox3.Value = True then
            NewItem.Property3 = somearray3(r.Row)
        End If

    Next r
End Sub

С этим кодом значения Checkboxes читаются на каждой итерации. Я боюсь, что это может замедлить выполнение программы без необходимости. Флажки могут быть прочитаны один раз, и содержимое цикла будет адаптироваться к значениям флажков. Возможно ли это?

Заранее спасибо.

1 Ответ

1 голос
/ 25 февраля 2012

Считайте флажки в начале, вне цикла и присвойте их значения трем логическим значениям или массиву логических значений. тогда вы просто читаете из логических переменных каждый раз.

это улучшит производительность, так как вам не нужен доступ к какой-либо объектной переменной, а просто логическое значение, которое лежит внутри вашего класса / объекта.

...