检查月份是否改变,如果月份改变,重置单元格

我在A4单元格中有当前date(TODAY())。 格式是11月15日和值从B4:T4。 当月份从11月份变到12月份时,我想将值重置为0.以下是我的尝试,

Private Sub Workbook_Open() If Sheets("Output").Range("A4").Value Like "01*" Then Range("B4:T4").ClearContents End Sub 

但我的问题是,该表不会每天打开。 假设如果excel表单在1日没有打开,则这些值不会被重置。 我们是否可以修改这个macros,在excel表打开的时候运行,并检查上一次运行的月份,如果它改变了,我们可以重置单元格的内容。

有人可以帮我做这个吗?

正如Raystafarian所说的,你需要将当前的月份存储在一个单元中。 我在Z4中有这个,你可以改变它。

尝试这个:

 Private Sub Workbook_Open() if Sheets("Output").Range("Z4").value > 0 then If Month(Sheets("Output").Range("A4")) <> Sheets("Output").Range("Z4") Then Range("B4:T4").ClearContents Sheets("Output").Range("Z4") = Month(Sheets("Output").Range("A4")) End If End IF End Sub 

每次closures工作簿时存储date,并与开始date进行比较。

 Private Sub Workbook_Open() With ThisWorkbook.Sheets("Output") If Month(.Range("A4")) <> Month (.Cells(.Rows.Count,.Columns.Count))Then .Range("B4:T4").ClearContents End With End Sub 

把它放在工作簿closures事件中。

 Private Sub Workbook_Close() With ThisWorkbook.Sheets("Output") .Cells(.Rows.Count,.Columns.Count).Value = .Range("A4") End With End Sub