Excel vba для подсчета количества циклов - PullRequest
0 голосов
/ 15 января 2019

У меня есть таблица, которую я собрал, чтобы случайным образом заполнить список судей против команд в серии заездов. Распределение судей по командам зависит от ряда критериев. Чтобы он работал правильно, он постепенно распределяет случайные числа для каждой пары судей, просматривая код до тех пор, пока не будут выполнены все критерии. Проблема в том, что иногда, в зависимости от начального распределения чисел, он никогда не достигнет точки, где все критерии будут выполнены, поэтому просто продолжайте цикл. Я просмотрел все, но не могу найти ничего, что будет работать - есть ли у кого-нибудь код, который будет подсчитывать количество циклов выполнения кода, и если он достигает порога, скажем, 100 циклов, он снова запускает исходный код? Я не включил в этот пост никакого кода, потому что рандомизатор, который у меня есть, действительно слишком большой и не очень подходит для этого вопроса, и я не достиг успеха в использовании счетчика циклов. Учитывая экспертизу на этом форуме, я подозреваю, что ответ будет довольно простым, и "дох!" момент с моей стороны.

1 Ответ

0 голосов
/ 15 января 2019

Быстро и грязно, возможно что-то вроде:

Dim maxcnt as Integer
Dim alldone as Boolean
alldone = False
Do While Not alldone
    For Each Team in AllTeams
        maxcnt = maxcnt + 1
        If maxcnt > 100 Then Exit For
        '==============================
        ' Your code logic
        ' goes here, and when
        ' all done, does this:
        alldone = True
        If alldone Then Exit For
        '==============================
    Next
    If alldone And maxcnt < 100 Then Exit Do
Loop
MsgBox "Job Completed"

Вы, вероятно, можете значительно улучшить это, но не в манере ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...