VBA/Excel IfThenElseIfElse Оператор копирует вниз проблему столбца

Хорошо, я разобрался с утверждением, оно работает именно так, как мне нужно. Когда я запускаю его, он в значительной степени ищет Interior.Color, и если он совпадает, он дает мне значение Text указанного цвета ячейки. Как скопировать и вставить это выражение If вниз по всему столбцу, если есть данные?

Я не знаю версию VBA для этого. Итак, код VBA, который у меня есть, выглядит так:

If Range("F2").Interior.Color = 255 Then
Range("AE2") = "Red"
ElseIf Range("F2").Interior.Color = 65252 Then
Range("AE2") = "Green"
Else
Range("AE2") = "New"
End If

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

Надеюсь, я имею смысл.

Спасибо


person user4223089    schedule 22.07.2016    source источник


Ответы (1)


поскольку вы не упомянули, какой столбец содержит данные, я предположил, что это столбец F, вы можете легко изменить код в соответствии со своими потребностями.

Я также переключил ваш IFs на Select Case, если в будущем у вас будет больше условий для тестирования.

' assuming your column that has data is Column F >> modify it according to your needed column
lastRow = Cells(Rows.count, "F").End(xlUp).row

For lRow = 2 To lastRow
    Select Case Range("F" & lRow).Interior.Color
        Case 255
            Range("AE" & lRow) = "Red"

        Case 65252
            Range("AE" & lRow) = "Red"

        Case Else
            Range("AE" & lRow) = "New"

    End Select
Next lRow
person Shai Rado    schedule 22.07.2016
comment
Столбец F содержит цветные ячейки, а столбец AE содержит результат. Итак, все, что я хочу, по сути, это чтобы Excel сказал мне цвет ячейки. Это помогает? - person user4223089; 22.07.2016
comment
@user4223089 user4223089 не совсем, в столбце F также есть текст? если нет, какой столбец из всего вашего диапазона содержит данные? содержит ли один из столбцов от F до AE связанные данные? - person Shai Rado; 22.07.2016
comment
Итак, столбец F содержит данные и цвет заливки (красный, желтый или зеленый). Мой IF Statment сверху точно говорит мне, является ли это одним из этих цветовых кодов, если нет, то он говорит New. Так что все отлично работает, мне просто нужно скопировать и вставить весь столбец, то есть столбец AE. - person user4223089; 22.07.2016
comment
@user4223089 user4223089 Тогда хорошо. так что мой код в ответе подходит, вы его проверяли? - person Shai Rado; 22.07.2016
comment
Только что проверил еще раз, и это работает! откуда, черт возьми, ты знаешь этот материал? Честно говоря, я очень расстроен тем, что не могу понять эту вещь VBA. Я в абсолютном восторге от него, но я просто не могу уложить его в голове. Никогда даже не слышал о Case или Select в VBA, звучит почти как SQL, но я посмотрю код и проведу небольшое исследование обоих, чтобы понять его. Большое спасибо за вашу помощь! - person user4223089; 22.07.2016
comment
@user4223089 user4223089 на сайте SO есть новый раздел документации по бета-тестированию, ознакомьтесь с ним, чтобы узнать о некоторых полезных трюках. Он будет обновляться с большим количеством вещей со временем - person Shai Rado; 22.07.2016