Poniżej przyjrzymy się programowi w Excel VBA który ustawia kolor tła zadania zgodne z harmonogramem na zielony i ustawia kolor tła zadań opóźnionych na czerwony.
Sytuacja:
Na Sheet1 mamy trzy zadania (X, Y, Z). „1” oznacza, że zadanie zostało wykonane. Zadanie jest zgodne z harmonogramem, jeśli „1” występuje w każdej kolumnie do dzisiejszej daty włącznie. Dziś jest 6 czerwca. Zadania X i Y przebiegają zgodnie z harmonogramem. Zadanie Z jest opóźnione (brak „1” w komórce E8).
Utwórz zdarzenie zmiany arkusza roboczego. Kod dodany do zdarzenia zmiany arkusza roboczego zostanie wykonany przez Excel VBA po zmianie komórki w arkuszu.
1. Otwórz Edytor Visual Basic.
2. Kliknij dwukrotnie Arkusz1 (Arkusz1) w Eksploratorze projektów.
3. Wybierz Arkusz roboczy z lewej listy rozwijanej. Wybierz Zmień z prawej listy rozwijanej.
Dodaj następujące wiersze kodu do zdarzenia zmiany arkusza roboczego:
4. Zadeklaruj dwie zmienne typu Integer.
Dim i As Integer, j As Integer
5. Dodaj pętlę Do While.
Dopóki komórki (6 + i, 1). Wartość ""
ja = ja + 1
Pętla
Wyjaśnienie: Dla i = 0, Excel VBA sprawdza zadanie X, dla i = 1, zadanie Y itd. Excel VBA opuszcza pętlę Do While, gdy komórki (6 + i, 1). Wartość jest pusta (brak więcej zadań do sprawdzenia) .
Dodaj następujące wiersze kodu (w punktach 6, 7 i 8) do pętli Do While.
6. Zainicjuj zmienną j wartością 0.
j = 0
7. Ustaw kolor tła zadania na zielony, zakładając, że zadanie odbywa się zgodnie z harmonogramem (niekoniecznie jest to oczywiście prawdą).
Komórki(6 + i, 1).Interior.ColorIndex = 4
8. Dodaj kolejną pętlę Do While.
Do While Cells (4, 2 + j). Wartość <= Data
If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3
j = j + 1
Pętla
Uwaga: funkcja Date zwraca dzisiejszą datę.
Wyjaśnienie: Dla i = 0, j = 0, Excel VBA sprawdza komórkę B6. Dla i = 0, j = 1, Excel VBA sprawdza komórkę C6 itd. Zadanie jest zgodne z harmonogramem, jeśli „1” występuje w każdej kolumnie do dzisiejszej daty włącznie. Jeśli Excel VBA znajdzie „0”, ustawia kolor tła zadania na czerwony.
9. Przetestuj program. Na przykład wskaż, że zadanie Z w dniu 6 czerwca zostało ukończone. W rezultacie zadanie Z automatycznie zmieni kolor na zielony.