Как назначить возвращаемое значение оператора case в ячейку справа от текущей ячейки в цикле For? - PullRequest
1 голос
/ 20 сентября 2019

Фон

В VBA вы можете назначить возвращаемое значение оператора Select Case для определенных ячеек , как показано ниже:

Добавить структуру Select Case.

Select Case score Case Is >= 80 result = "very good" Case Is >= 70 result = "good" Case Is >= 60 result = "sufficient" Case Else result = "insufficient" End Select

Объяснение: Excel VBA использует значение переменной Score для проверки каждого последующего оператора Case.чтобы увидеть, должен ли выполняться код в операторе Case.

Записать значение результата переменной в ячейку B1.

Range("B1").Value = result

Это просто для меня, однако я пытаюсь перебратьстолбец ячеек, чтобы сделать то же самое с для цикла .Код выше делает это для одного экземпляра.Тем не менее, я хочу сделать это для каждой ячейки и классифицировать результат в ячейке справа.

Попытка решения

Ниже приведен код, который я использовал до сих пор:

....variables defined at the beginning as strings
Set MyRange = Sheet6.Range("A2:A355")
For each cell In MyRange
    Select Case cell.Value
        Case Is = raid
            result = "area"
        Case Is = fifty
            result = "one"
        ... more cases ad nauseum
    End Select
Next

Вы можете назначить конкретную ячейку с помощью метода диапазона, описанного выше.Но я хочу присвоить результирующей строке одну ячейку справа (то есть в столбце B, но в той же строке).Отсюда мой вопрос ...

Вопрос

Как мне указать, что я хочу, чтобы результат оператора case выводился один раз в ячейку справа от текущей ячейки в цикле For в VBA

1 Ответ

3 голосов
/ 20 сентября 2019

Вам просто нужно:

cell.Offset(0, 1).Value = result

после вашего End Select

...