vba делать до тех пор, пока цикл не включится, хотя условие действительно - PullRequest
0 голосов
/ 08 октября 2018

Я не буду приводить весь код, я постараюсь показать, что имеет значение.Следующий код (который находится внутри цикла, но это не имеет значения) вызывает функцию (compareStrings), которая возвращает целое число.

Sheet1.Range("S" & i).Value = compareStrings(sheet1.Range("J" & i).Value, sheet1.Range("K" & i).Value)

Так что в основном у меня есть цикл, который заполняет столбец S целыми числами.Затем я сортирую столбец S в порядке возрастания.позже у меня есть другой цикл, который должен что-то делать со всеми значениями, которые меньше 5.

Цикл выглядит так:

With Sheet1.Range("S" & i)
    Do Until .Value < 5
        If .Value = 0 Then
            'some statement
        Else
            'some statement
        End If
        i = i + 1
    Loop

End With

По какой-то причине это не такпойти в цикле, хотя у меня есть много строк со значениями <5. Я на самом деле пытался изменить его на <>, и он тоже не идет.Это как если бы оно не рассматривало его как целое число, хотя я поместил целые числа в эти ячейки.

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 08 октября 2018

"У меня есть другой цикл, который должен что-то делать со всеми значениями, которые меньше 5."

Хотя ваша логика не имеет смысла.

Do Until .Value < 5 будет не делать что-либо со значениями меньше 5. Это то же самое, что сказать: «Действуй, если мое значение больше или равно 5.

Do While может быть лучшим вариантом.

...