Nedenfor ser vi på et program i Excel VBA som angir bakgrunnsfargen på oppgaver som er i rute til grønt, og setter bakgrunnsfargen på oppgaver som ligger bak planen til rød.
Situasjon:
På Sheet1 har vi tre oppgaver (X, Y, Z). En "1" indikerer at en oppgave er fullført. En oppgave er etter planen hvis det finnes en "1" i hver kolonne til og med dagens dato. I dag er det 6. juni. Oppgaver X og Y er i rute. Oppgave Z er etter planen (ingen "1" i celle E8).
Lag en hendelsesendringshendelse. Koden som er lagt til i regnearksendringshendelsen, blir utført av Excel VBA når du endrer en celle i et regneark.
1. Åpne Visual Basic Editor.
2. Dobbeltklikk på Sheet1 (Sheet1) i Project Explorer.
3. Velg Regneark fra rullegardinlisten til venstre. Velg Endre fra rullegardinlisten til høyre.
Legg til følgende kodelinjer i regnearkendringshendelsen:
4. Angi to variabler av typen Heltall.
Dim i As Integer, j As Integer
5. Legg til en Do While Loop.
Gjør mens celler (6 + i, 1). Verdi ""
i = i + 1
Løkke
Forklaring: For i = 0 sjekker Excel VBA oppgave X, for i = 1, oppgave Y, etc. Excel VBA forlater Do While -løkken når celler (6 + i, 1). Verdien er tom (ingen flere oppgaver å kontrollere) .
Legg til følgende kodelinjer (på 6, 7 og 8) i Do While Loop.
6. Initialiser variabelen j med verdi 0.
j = 0
7. Sett bakgrunnsfargen på en oppgave til grønn forutsatt at en oppgave er i henhold til planen (dette er ikke nødvendigvis sant selvfølgelig).
Celler (6 + i, 1) .Interior.ColorIndex = 4
8. Legg til en annen Do While Loop.
Gjør mens celler (4, 2 + j) .Værdi <= Dato
If Cells (6 + i, 2 + j) .Value = 0 Then Cells (6 + i, 1) .Interior.ColorIndex = 3
j = j + 1
Løkke
Merk: Datofunksjonen returnerer dagens dato.
Forklaring: For i = 0, j = 0, sjekker Excel VBA celle B6. For i = 0, j = 1, sjekker Excel VBA celle C6, etc. En oppgave er på planen hvis det finnes en "1" i hver kolonne til og med dagens dato. Hvis Excel VBA finner en "0", angir den bakgrunnsfargen på oppgaven til rød.
9. Test programmet. Angi for eksempel at oppgave Z 6. juni er fullført. Som et resultat blir oppgave Z automatisk grønt.