Oppgaver på skjema i Excel VBA
Nedenfor ser vi på et program i Excel VBA som setter bakgrunnsfargen til oppgaver som er på tidsplan til grønt, og setter bakgrunnsfargen på oppgavene som ligger bak planen til rød.
Situasjon:
På Ark1 har vi tre oppgaver (X, Y, Z). En "1" indikerer at en oppgave er fullført. En oppgave er på skjema hvis en "1" eksisterer i hver kolonne til og med dagens dato. I dag er det 6-juni. Oppgaver X og Y er på skjema. Oppgave Z er etter planen (ingen "1" i celle E8).
Opprett et regnearkendringshendelse. Kode som er lagt til i regnearkets endringshendelse, blir utført av Excel VBA når du endrer en celle på et regneark.
1. Åpne Visual Basic Editor.
2. Dobbeltklikk på Sheet1 (Sheet1) i Project Explorer.
3. Velg regneark fra den nedtrekkbare listen. Velg Endre fra den høyre rullegardinlisten.
Legg til følgende kodelinjer i regnearkendringshendelsen:
4. Erklær to variabler av typen Integer.
5. Legg til en Do While Loop.
i = i + 1
Loop
Forklaring: For i = 0, kontrollerer Excel VBA oppgave X, for i = 1, oppgave Y, etc. Excel VBA forlater Do While-loop når celler (6 + i, 1) .Value er tomt (ikke flere oppgaver å sjekke).
Legg til følgende kodelinjer (ved 6, 7 og 8) til Do while Loop.
6. Initialiser variabelen j med verdi 0.
7. Sett bakgrunnsfargen til en oppgave til grønt, forutsatt at en oppgave er på skjema (dette er ikke nødvendigvis sant selvsagt).
8. Legg til en annen gjøre mens du går.
If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3
j = j + 1
Loop
Merk: Dato-funksjonen returnerer dagens dato.
Forklaring: For i = 0, j = 0, kontrollerer Excel VBA celle B6. For i = 0, j = 1, kontrollerer Excel VBA celle C6, etc. En oppgave er på skjema hvis en "1" eksisterer i hver kolonne til og med dagens dato. Hvis Excel VBA finner en "0" setter bakgrunnsfargen på oppgaven til rød.
9. Test programmet. For eksempel angi at oppgaven Z på 6-juni er fullført. Som et resultat blir oppgave Z automatisk grønn.