VBA (функцией условного форматирования - набора значков - выставить стрелки возле значения)
Формулировка задачи:
Подскажите пожалуйста, как с помощью VBA (и применив функцию условного форматирования - набора значков) отразить рост и падение по строке без фиксированного условия, например имеем диапазон дат со значениями как отразить значки по темпу роста (но без отсутствия самого расчета темпа роста) ,т.е. к примеру по первой строке с ФИО чел.1 - 02.01.2016 должен быть значок роста возле цифры, 03.01.2016 значок роста, 04.01.2016 значок паления потому-что предыдущее значение больше, а там где значение одинаково боковая стрелка
ФИО | ПОКАЗАТЕЛЬ | 01.01.2016 | 02.01.2016 | 03.01.2016 | 04.01.2016 | 05.01.2016 | 06.01.2016 |
чел.1 | показатель1 | 10 | 11 | 12 | 10 | 15 | 15 |
чел.1 | показатель2 | 11 | 11 | 11 | 11 | 11 | 11 |
чел.1 | показатель3 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.1 | показатель4 | 13 | 13 | 13 | 13 | 13 | 13 |
чел.1 | показатель5 | 14 | 14 | 14 | 14 | 14 | 14 |
чел.1 | показатель6 | 15 | 15 | 15 | 15 | 15 | 15 |
чел.1 | показатель7 | 16 | 16 | 16 | 16 | 16 | 16 |
чел.1 | показатель8 | 17 | 17 | 17 | 17 | 17 | 17 |
чел.2 | показатель1 | 1 | 5 | 3 | 7 | 9 | 10 |
чел.2 | показатель2 | 2 | 2 | 2 | 2 | 2 | 2 |
чел.2 | показатель3 | 3 | 3 | 3 | 3 | 3 | 3 |
чел.2 | показатель4 | 4 | 4 | 4 | 4 | 4 | 4 |
чел.2 | показатель5 | 5 | 5 | 5 | 5 | 5 | 5 |
чел.2 | показатель6 | 6 | 6 | 6 | 6 | 6 | 6 |
чел.3 | показатель1 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.3 | показатель2 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.3 | показатель3 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.3 | показатель4 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.3 | показатель5 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.3 | показатель6 | 10 | 10 | 10 | 10 | 10 | 10 |
чел.4 | показатель1 | 20 | 20 | 20 | 20 | 20 | 20 |
чел.4 | показатель2 | 21 | |||||
чел.4 | показатель3 | 22 | 22 | 21 | 25 | 28 | 30 |
Решение задачи: «VBA (функцией условного форматирования - набора значков - выставить стрелки возле значения)»
textual
Листинг программы
- Sub green(cCell As Range)
- cCell.FormatConditions.AddIconSetCondition
- cCell.FormatConditions(cCell.FormatConditions.Count).SetFirstPriority
- With cCell.FormatConditions(1)
- .ReverseOrder = False
- .ShowIconOnly = False
- .IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1)
- End With
- With cCell.FormatConditions(1).IconCriteria(1)
- .Icon = xlIconRedDownArrow
- End With
- With cCell.FormatConditions(1).IconCriteria(2)
- .Type = xlConditionValueNumber
- .Value = cCell.Offset(0, -1)
- .Operator = xlGreaterEqual
- .Icon = xlIconYellowSideArrow
- End With
- With cCell.FormatConditions(1).IconCriteria(3)
- .Type = xlConditionValueNumber
- .Value = cCell.Offset(0, -1)
- .Operator = xlGreater
- .Icon = xlIconGreenUpArrow
- End With
- End Sub
- Public Sub format_arrow()
- Dim cCell As Range
- For Each cCell In Range(Cells(6, 5), Cells(28, 9))
- Call green(cCell)
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д