#excel #vba
Вопрос:
Я хочу внедрить некоторую логику в свой планировщик, но на самом деле у меня нет знаний о том, как проверять значения в столбце. Что я хотел бы реализовать, так это проверять, существуют ли значения "F"
и "S"
существуют ли они хотя бы раз в день, в противном случае столбец должен быть окрашен. Кроме того , я хотел бы проверить, если значения "U"
"SCH"
и "ZA"
не встречаются более 3 раз за данный день, в противном случае столбец снова должен быть окрашен.
Вот пример, если приведенного описания недостаточно:
Легенда:
F = early Shift,
S = late Shift,
U = Vacation,
ZA = compensatory time,
SCH = training
Комментарии:
1. используйте условное форматирование
2. Я пытался использовать условное форматирование, но мне не удалось сделать это самостоятельно.
3. Вы можете найти несколько учебных пособий здесь: google.com/search?q=excel условное форматирование как сделать . Счастливого обучения!
Ответ №1:
Поскольку Луук подслащен, попробуйте эту формулу в условном формате (отрегулируйте ее самостоятельно).:
=OR(OR(COUNTIF(B:B,"F")<1,COUNTIF(B:B,"S")<1),(COUNTIF(B:B,"U") COUNTIF(B:B,"SCH") COUNTIF(B:B,"ZA"))>2)
Результат должен выглядеть так:
Ответ №2:
- Идея кода состоит в том, чтобы установить диапазон вручную —
Range("A1:P20")
. - Затем с помощью вложенного цикла он проверяет значения каждой ячейки в диапазоне, если она является частью
Array("U", "SCH", "ZA, "F", "S")
. - Если это так, то столбец ячейки будет выделен желтым цветом с этой частью кода —
myRange.Columns(myCell.Column).Interior.Color = vbYellow
Sub ColorMe()
Dim myRange As Range
Set myRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:P20")
Dim myCell As Range
Dim myArray As Variant
myArray = Array("U", "SCH", "ZA", "F", "S")
Dim myItem As Variant
For Each myCell In myRange.Cells
For Each myItem In myArray
If myItem = UCase(Trim(myCell)) Then
myRange.Columns(myCell.Column).Interior.Color = vbYellow
End If
Next
Next myCell
End Sub
Используя приведенные выше пункты и свою бизнес-логику, вы можете ввести переменную, решая, должен ли столбец диапазона быть окрашен или нет.