Excel 当日期临近(1周)时,更改工作表选项卡的颜色

Excel 当日期临近(1周)时,更改工作表选项卡的颜色,excel,vba,Excel,Vba,正如提提所描述的,这就是我目前所得到的 Private Sub Workbook_SheetCalculate(ByVal Sh As Object) Dim i As Long Dim cell As Date For i = 14 To MAX_ROW cell = ActiveSheet.Cells(i, 14).Value If DateSerial(Year(Date), Month(cell), Day(cell)) - Date <= 7 Then

正如提提所描述的,这就是我目前所得到的

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

Dim i As Long

Dim cell As Date

For i = 14 To MAX_ROW
    cell = ActiveSheet.Cells(i, 14).Value
    If DateSerial(Year(Date), Month(cell), Day(cell)) - Date <= 7 Then
    Sh.Tab.ColorIndex = 3
    Else
    Sh.Tab.ColorIndex = 6
    End If
   Next
 
End Sub
Private子工作簿\u SheetCalculate(ByVal Sh作为对象)
我想我会坚持多久
将单元格变暗为日期
对于i=14至最大行
cell=ActiveSheet.Cells(i,14).Value

如果DateSerial(年(日期)、月(单元格)、日(单元格))-Date尝试以下操作:检查服务日期是否在未来7天内,并且在右侧的下一个单元格中是否未标记为“Completado”

Private子工作簿\u SheetCalculate(ByVal Sh作为对象)
例如,Const MAX_行的长度=40'
尺寸i等于长度,dt,c等于范围
Sh.Tab.ColorIndex=6'默认颜色
对于i=14至最大行
集合c=Sh单元(i,14)
dt=c.值“Sh”不是活动表
如果是日期(dt),则“检查”是一个日期
调试。打印Sh.名称,i,dt
'服务日期是否在7天内且尚未完成?
如果日期-Sh.单元格(i,14).值<7和_
LCase(Trim(c.Offset(0,1).Value))“completado”然后
Sh.Tab.Color=vbRed
在一次更改后退出“Sub”
如果结束
如果结束
接下来我
端接头

标题和帖子描述的都是问题所在,毫无疑问。另请参见您正在更改选项卡颜色最多14次,因此只有最后日期会影响您留下的选项卡颜色。同意scott的观点,很难说你想要什么/问题是什么。很抱歉问题不清楚,我已经更新了问题,希望它更清楚。我在互联网上进行了研究,尝试了许多不同的方法,试图使代码正常工作,得到了sh.cells和max_row。因此,它可能不适合我实际想要做的事情(我还是一个初学者)。正如我所描述的,表格将不断更新,因此,当到期的检查完成时,选项卡颜色将再次更改为默认颜色,这意味着车辆检查已完成。请提供完整的示例数据集(屏幕截图在这里可能会有很大帮助)。然后解释您的数据是如何更改的,以及在每个步骤中何时以及应该发生什么。尝试尽可能详细地解释。如果没有示例数据,很难理解您的问题。非常感谢!此代码工作得更好!除了颜色更改为红色之外,其他一切都正常(ColorIndex=3)在不应该的日期,例如日期前一个月或两个月,而不是像我试图做的那样七天。不确定它是否是Sh.Cells的一部分(i,14).Value-Date请参见上面的编辑-修复了日期检查部分Hello再次感谢我非常确定代码正在改进,但是它仍然在错误的时间更改选项卡的颜色。以前在研究执行此代码的方法时,我偶然发现一个代码使用此If DateSerial(年(日期)、月(单元格)、日(单元格))-日期您好,再次查看后,我发现如果在这种情况下有效,则应为:如果dt-Date<7且dt-Date>=0,则…如果小于0,则不会变得疯狂。现在我想知道是否有办法使其在预期到期日之前进行检查或者在一般情况下完成检查时,将颜色重置为默认值,因为检查已经完成。现在无法执行此操作,因为代码仍在读取表中的前一日期,因为它符合IF条件。我在表中有另一列说明“已完成”当下一个单元格中的日期添加到上一个单元格的下方时。这是我的意思的屏幕截图,我还将其有条件地格式化为绿色。这是一个更完整的表:。也许通过将此已完成的单元格添加到日期旁边,我想实现的目标会更容易。不过,我不确定如何对其进行编码。