Функция VBA <> не работает должным образом - PullRequest
0 голосов
/ 16 июня 2019

Я сравниваю две ячейки, которые содержат числа 1, 2, 3 или 4. Внутри цикла я сравниваю эти целые числа из обеих ячеек.Если они не совпадают (<>), тогда выполните Выход для следующего.VBA игнорирует мой код и продолжает цикл.С помощью отладки я вижу это.Это основные логические законы.Есть мысли?

hdv = число от 1 до 4 adv = число от 1 до 4 - это цикл от 1 до 100

      For loop= 1 To 100
                hdv = Worksheets("20002018").Cells(row, 1).Value
                    adv = Worksheets("20002018").Cells(row, 2).Value
                        If hdv <> adv Then Exit For

', если false, выполните здесь некоторые вещи.Следующий цикл

Worksheets ("20002018"). Ячейки (row, 1) содержат 1 Worksheets ("20002018"). Ячейки (row, 2) содержат 2, сравнивая эти два значения, должно быть достаточно для выхода из цикла

1 Ответ

1 голос
/ 16 июня 2019

Ваш код не будет компилироваться, если в качестве приращения в поле For ... Next используется loop. Loop является зарезервированным словом в VBA и имеет другое назначение.

Независимо от того, на что вы его измените, вероятно, то же самое следует использовать вместо row in,

hdv = Worksheets("20002018").Cells(row, 1).Value
adv = Worksheets("20002018").Cells(row, 2).Value

Изменение row на любую числовую переменную, которую вы используете для увеличения цикла, будет увеличивать ссылочную строку на рабочем листе для каждой итерации цикла For ... Next, пока не завершится.

dim LOOPS as long, hdv as long, adv as long

for LOOPS =1 to 100
  hdv = Worksheets("20002018").Cells(LOOPS, 1).Value
  adv = Worksheets("20002018").Cells(LOOPS, 2).Value
  If hdv <> adv Then Exit For

   'other stuff

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