更改基于在Excel中使用VBA日期字体颜色
|在本文中,我们将使用工作簿事件来突出显示大于当前日期的日期。
此示例的原始数据包括每日销售目标和已实现的目标。
我们要突出显示大于当前日期的日期。
逻辑解释
在本文中,我们创建了两个宏,“ SetColor”和“ ResetColor”。
“ SetColor”宏用于突出显示大于当前日期的日期。
“ ResetColor”宏用于重置指定来源的格式。
我们使用了两个工作簿事件,工作簿打开事件和关闭事件之前的工作簿。
打开工作簿时将触发工作簿打开事件。打开工作簿时,它将自动运行“ SetColor”宏。
关闭事件之前的工作簿用于重置与工作簿打开事件关联的事件。
代码说明
如果IsDate(ActiveCell.Value)和ActiveCell.Value> Date,则上面的代码用于检查单元格中的值是否为日期数据类型且大于当前日期。
ActiveCell.Interior.Color = RGB(0,255,0)
上面的代码用于为活动单元分配绿色。
设置源= Range(“ A1”,Range(“ A1”)。SpecialCells(xlCellTypeLastCell))
上面的代码用于选择excel工作表中的所有数据。
请遵循以下代码
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
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们希望收到您的来信,请让我们知道如何改善我们的工作并为您做得更好。写信给我们[email protected]