Ниже мы рассмотрим программу на Excel VBA который устанавливает цвет фона задачи, которые идут по расписанию становится зеленым, а цвет фона задач, отстающих от графика, становится красным.
Ситуация:
На Sheet1 у нас есть три задачи (X, Y, Z). «1» означает, что задача выполнена. Задача выполняется по расписанию, если в каждом столбце до сегодняшней даты включительно стоит «1». Сегодня 6 июня. Задания X и Y выполняются по расписанию. Задача Z отстает от графика (нет «1» в ячейке E8).
Создайте событие изменения рабочего листа. Код, добавленный в событие изменения рабочего листа, будет выполняться Excel VBA при изменении ячейки на листе.
1. Откройте редактор Visual Basic.
2. Дважды щелкните Sheet1 (Sheet1) в проводнике проекта.
3. Выберите Рабочий лист в раскрывающемся списке слева. В правом раскрывающемся списке выберите Изменить.
Добавьте следующие строки кода в событие изменения рабочего листа:
4. Объявите две переменные типа Integer.
Dim i как целое число, j как целое число
5. Добавьте цикл «Сделать, пока».
Ячейки Do While (6 + i, 1). Значение ""
я = я + 1
Петля
Объяснение: для i = 0 Excel VBA проверяет задачу X, для i = 1, задачу Y и т. Д. Excel VBA выходит из цикла Do While, когда Cells (6 + i, 1) .Value пуст (больше нет задач для проверки) .
Добавьте следующие строки кода (6, 7 и 8) в цикл Do While Loop.
6. Инициализируйте переменную j значением 0.
j = 0
7. Установите зеленый цвет фона задачи, предполагая, что задача выполняется по расписанию (конечно, это не обязательно так).
Ячейки (6 + i, 1) .Interior.ColorIndex = 4
8. Добавьте еще один цикл Do While.
Сделать, пока ячейки (4, 2 + j). Значение <= Дата
Если Cells (6 + i, 2 + j) .Value = 0, то Cells (6 + i, 1) .Interior.ColorIndex = 3
j = j + 1
Петля
Примечание: функция Date возвращает сегодняшнюю дату.
Объяснение: Для i = 0, j = 0 Excel VBA проверяет ячейку B6. Для i = 0, j = 1 Excel VBA проверяет ячейку C6 и т. Д. Задача выполняется по расписанию, если «1» существует в каждом столбце до сегодняшней даты включительно. Если Excel VBA находит «0», он устанавливает красный цвет фона задачи.
9. Протестируйте программу. Например, укажите, что задание Z 6 июня выполнено. В результате задача Z автоматически станет зеленой.