Запускайте цикл For, только если текущая строка нечетна - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь запустить цикл для создания некоторых данных, как показано. Я пытаюсь запустить этот простой цикл, но хотел бы, чтобы он работал только для нечетных или четных строк. У меня есть несколько идей, как это сделать, но я не знаю, как это сделать.

Например, я не уверен, что Excel VBA может обрабатывать что-то вроде: Если значение ячейки = S, а строка нечетная, то ...

Еще одна вещь, которую я подумал: «Диапазон» можно определить только как нечетные или четные значения, но не повезло. Возможно ли это?

Dim typecheck As Range

Set typecheck = Range("B1:B60") 'set the range itself to odd/even? or no range at all? just individually?

For Each cell In typecheck

    If cell.Value = "S" Then 'and odd row?

    cell.Offset(0, 1).Value = "_status"

    End If

Next

Ожидаемый результат: цикл будет проходить через строки 1-60 и будет давать результат, только если ячейка в диапазоне имеет значение S, а строка является нечетной строкой.

1 Ответ

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

Это будет работать: Mod Функция дает вам остаток.Используйте это как ниже.

Dim typecheck As Range

Set typecheck = Range("B1:B60") 

For Each cell In typecheck

    If cell.Value = "S" And Not cell.Row Mod 2 = 0 Then 'For Odd Row

    cell.Offset(0, 1).Value = "_status"

    End If

Next

Он передаст условие if только для нечетной строки.Для четных строк просто удалите Not из условия if.

Мы проверяем остаток после деления номера строки на 2, если 0, то это четная строка, если нет, то это нечетная строка.

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