我在A4单元格中有当前日期(TODAY())。格式为Nov-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
但我的问题是,这张纸每天都不会打开。假设如果在第1天没有打开excel表,则值不会被重置。我们可以修改此宏以在excel表打开时运行并检查上一次运行中的月份,如果它已更改,我们可以重置单元格的内容。
有人可以帮我这么做吗?
答案 0 :(得分:3)
每次关闭工作簿时存储日期,并与打开日期进行比较。
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
将它放在工作簿关闭事件中。
Private Sub Workbook_Close()
With ThisWorkbook.Sheets("Output")
.Cells(.Rows.Count,.Columns.Count).Value = .Range("A4")
End With
End Sub
答案 1 :(得分:2)
正如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