Compiti in programma a Excel VBA
Di seguito vedremo un programma in Excel VBA che imposta il colore di sfondo di compiti che sono in programma per verde, e imposta il colore di compiti che sono in ritardo a sfondo rosso.
Situazione:
Sheet1 abbiamo tre compiti (X, Y, Z). Un “1” indica che un compito è stato completato. Un compito è in programma se un esistere “1” in ogni colonna fino al data odierna. Oggi è 6-giugno Compiti X e Y sono in programma. Compito Z è in ritardo (senza “1” nella cella E8).
Creare un evento di modifica del foglio di lavoro. Codice aggiunto all’evento Change foglio di lavoro sarà eseguito da Excel VBA quando si modifica una cella di un foglio di lavoro.
-
Aprire il Visual Basic Editor.
-
Fare doppio clic su Sheet1 (Foglio1) in Esplora progetti.
-
Scegliere foglio di lavoro dall’elenco a discesa sinistra. Seleziona Cambia dall’elenco a discesa a destra.
Aggiungere le seguenti righe di codice per l’evento Change Foglio di lavoro:
-
Dichiarare due variabili di tipo Integer.
Dim i As Integer, j As Integer
-
Aggiungere un ciclo Do While.
Do While Cells(6 + i, 1).Value <> "" i = i + 1 Loop
Spiegazione: per i = 0, Excel VBA controlli compito X, per i = 1, compito Y, ecc
Excel VBA lascia il ciclo Do While quando le cellule (6 + I, 1) .Value è vuoto (non più compiti da controllare).
Aggiungere le seguenti righe di codice (a 6, 7 e 8) al Do While Loop.
-
inizializzare la variabile j con un valore 0.
j = 0
-
Impostate il colore di un compito sfondo al verde supponendo che un compito è in programma (questo non è necessariamente vero, naturalmente).
Cells(6 + i, 1).Interior.ColorIndex = 4
-
Aggiungere un altro ciclo Do While.
Do While Cells(4, 2 + j).Value <= Date If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3 j = j + 1 Loop
Nota: la funzione Date restituisce la data odierna.
Spiegazione: per i = 0, j = 0, Excel VBA cella B6 controlli. Per i = 0, j = 1, Excel VBA cella C6 controlli, ecc Un compito è in programma se un “1” esiste in ogni colonna fino al data odierna. Se Excel VBA trova un “0”, si imposta il colore il compito di sfondo rosso.
-
Verificare il programma. Per esempio, indicano che compito Z il 6-Jun è stato completato. Di conseguenza, il compito Z si accende automaticamente verde.