Cambiare il colore del carattere in base alla data utilizzando VBA in Microsoft Excel
In questo articolo, useremo l’evento della cartella di lavoro per evidenziare le date maggiori della data attuale.
I dati grezzi per questo esempio sono costituiti dall’obiettivo di vendita giornaliero e dall’obiettivo raggiunto.
Vogliamo evidenziare i giorni che sono maggiori della data attuale.
Spiegazione logica
In questo articolo abbiamo creato due macro, “SetColor” e “ResetColor”.
La macro “SetColor” viene utilizzata per evidenziare le date che sono maggiori della data attuale.
La macro “ResetColor” viene utilizzata per ripristinare la formattazione dell’origine specificata.
Abbiamo utilizzato due eventi della cartella di lavoro, l’evento di apertura della cartella di lavoro e la cartella di lavoro prima dell’evento di chiusura.
L’evento di apertura della cartella di lavoro viene generato all’apertura della cartella di lavoro. All’apertura della cartella di lavoro, verrà eseguita automaticamente la macro “SetColor”.
L’evento Cartella di lavoro prima della chiusura viene utilizzato per reimpostare l’evento associato all’evento di apertura della cartella di lavoro.
Spiegazione del codice
If IsDate (ActiveCell.Value) And ActiveCell.Value> Date Then Il codice precedente viene utilizzato per verificare se il valore nella cella è del tipo di dati data ed è maggiore della data attuale.
ActiveCell.Interior.Color = RGB (0, 255, 0)
Il codice sopra viene utilizzato per assegnare il colore verde alla cella attiva.
Imposta sorgente = intervallo (“A1”, intervallo (“A1”). SpecialCells (xlCellTypeLastCell))
Il codice sopra viene utilizzato per selezionare tutti i dati all’interno del foglio Excel.
Segui sotto per il codice
Option Explicit Sub SetColor() If IsDate(ActiveCell.Value) And ActiveCell.Value > Date Then ActiveCell.Interior.Color = RGB(0, 255, 0) Else ActiveCell.Interior.Color = RGB(221, 235, 247) End If End Sub Sub ResetColor() 'Declaring variables Dim Rng, Source As Range Dim IntRow As Integer, IntCol As Integer 'Specifying all the cells as source range Set Source = Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell)) 'Looping through all the cells For Each Rng In Source 'Checking whether cell contains a value If Not IsEmpty(Rng) Then 'Checking whether cell contain value of date data type If IsDate(Rng.Value) Then Rng.Select 'Assigning Green color if value is greater than today date If DateValue(Rng.Value) > Date Then ActiveCell.Interior.Color = RGB(0, 255, 0) Else ActiveCell.Interior.Color = RGB(221, 235, 247) End If End If End If Next Rng End Sub 'Insert below code in ThisWorkbook module Option Explicit Private Sub Workbook_Open() With Worksheets("Main") 'Event fired on entry to worksheet .OnEntry = "SetColor" 'Event fired on sheet activation .OnSheetActivate = "ResetColor" End With End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) With Worksheets("Main") .OnEntry = "" .OnSheetActivate = "" End With End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]