Я работаю над макросом 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
Эй, прежде всего, спасибо за совет и помощь, это очень ценится. Я пробовал ваше решение (которое само по себе отлично работает) с изменением, где я пытался выбрать диапазон для i, поскольку я не знаю, сколько строк будет каждый раз при запуске скрипта. К сожалению, я не могу внести правильные корректировки, есть ли у вас какие-либо предложения по этому поводу? – Thedevineass
------- Для каждого 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
Я исправил часть выбор в начале, выполнив следующие действия: 'Dim MyRange Как Range Dim у As Integer Set MyRange = Range ("A: A") у = Application.WorksheetFunction.CountA (MyRange) Для I = 2 у' Спасибо за помощь, теперь все отлично работает: D – Thedevineass