【问题标题】:change color of tab on sheets in a workbook based on date根据日期更改工作簿中工作表上的选项卡颜色
【发布时间】:2017-08-24 14:58:20
【问题描述】:

我有一个工作簿,其中包含时间敏感的工单(每张纸上的一个不同的工单)。有时,此工作簿中可能有 5 到 25 张纸。在每张表的单元格 H15 中是工作订单的到期日期。我正在尝试设置一个 vba,当工作簿打开时,它将检查日期并在最后一天将工作表的选项卡更改为红色。我有一个我认为正确但不起作用的代码。有人告诉我尝试使用 (Private Sub Workbook_Open() ),但我似乎无法获得正确的编码,因此它会检查所有工作表。

谢谢你,

Private Sub Worksheet_Change(ByVal Target As Range)

   With ActiveSheet
      If Range("H15").Value = Date Then
         .Tab.ColorIndex = 3 'Red

      End If
   End With
End Sub

【问题讨论】:

  • Worksheet_Change 处理程序每次在任何工作表上发生任何更改时都会运行 - 这意味着会无缘无故地发生大量无用的处理开销。如果您需要在工作簿打开时运行一次,请在工作簿打开时运行一次。

标签: vba excel date


【解决方案1】:

在 ThisWorkbook 模块中试试这个(并删除工作表更改代码)。 (针对 Jeeped 的评论,标签颜色在​​其他任何地方都被删除了。)

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In Worksheets
    If ws.Range("H15").Value = Date Then
       ws.Tab.ColorIndex = 3
    Else
       ws.Tab.ColorIndex = xlColorIndexNone
    End If
Next ws

End Sub

【讨论】:

  • 不应该去掉前一天的标签颜色吗?
  • 感谢您的帮助。效果很好。
猜你喜欢
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多