2015-05-26 3 views
0

Я работаю над макросом Excel, который удаляет несколько столбцов, корректирует размер и формат некоторых других столбцов, а затем должен иметь цветные строки в зависимости от сравнения двух дат в столбцах G и H. Правило должно быть, если даты, указанные в G, равны, или позже, чем дата в H, тогда эта строка должна получить зеленый цвет земли, если даты предшествуют в течение 4 недель, тогда он должен быть окрашен в желтый цвет и что-нибудь раньше, чем 4 недели должны быть окрашены в красный цвет.Раскраски строк на основе сравнения между двумя столбцами

Я пытался добиться этого с помощью следующего кода, к сожалению, я не то, что опыт работы с Excel макросов, так что если кто-то имеет какой-либо помощи я был бы признателен:

Set DelIndi = Range("H:H") 
For Each Cell In DelIndi 
    Select Case Cell.Value 

     Case Is > Range("G:G").Value 
      Cell.EntireRow.Interior.ColorIndex = 4 

     Case Is < Range("G:G").Value 
      Cell.EntireRow.Interior.ColorIndex = 5 

     Case Is = "9999999" 
      Cell.EntireRow.Interior.ColorIndex = 3 

     'Case Else 
      'Cell.EntireRow.Interior.ColorIndex = 4 

    End Select 

Next 

ответ

0

форматирование не супер довольно здесь, но это будет работать

Sub colorCells() 

For i = x To y 
    If (Range("G" & i).Value >= Range("H" & i).Value) Then 
     Range("G" & i & ":H" & i).Interior.Color = 5287936 
    Else 

     If (Range("G" & i).Value >= (Range("h" & i).Value - 28)) Then 
      Range("G" & i & ":H" & i).Interior.Color = 65535 
     Else 
      Range("G" & i & ":H" & i).Interior.Color = 255 
     End If 
    End If 
Next i 

End Sub 

Где это говорит For i = x to y, изменение х в первой строке вы хотите, чтобы цвет и у до последней строки, которую вы хотите, чтобы цвет. Обратите внимание, что любые пустые строки будут окрашены в желтый цвет.

+0

Эй, прежде всего, спасибо за совет и помощь, это очень ценится. Я пробовал ваше решение (которое само по себе отлично работает) с изменением, где я пытался выбрать диапазон для i, поскольку я не знаю, сколько строк будет каждый раз при запуске скрипта. К сожалению, я не могу внести правильные корректировки, есть ли у вас какие-либо предложения по этому поводу? – Thedevineass

+0

------- Для каждого i в ActiveSheet.Range ("a1"). CurrentRegion.Cells If (Range ("G" & i) .Value> = Range ("H" & i) .Value) Затем Диапазон («G» & i & »: H» & i) .Interior.Color = 5287936 Else If (Range ("G" & i) .Value> = (Range ("h" & i). Значения - 28)) Затем Диапазон («G» & i & »: H» & i) .Interior.Color = 65535 Else Диапазон («G» & i & «: H» и i). Внутренний .Color = 255 End If End If Далее я --------- – Thedevineass

+0

Я исправил часть выбор в начале, выполнив следующие действия: 'Dim MyRange Как Range Dim у As Integer Set MyRange = Range ("A: A") у = Application.WorksheetFunction.CountA (MyRange) Для I = 2 у' Спасибо за помощь, теперь все отлично работает: D – Thedevineass

Смежные вопросы