我想在2个单元格中写下以下信息:
Sheets("Dates").Range("A1").Value = Date '(today 's date)
Sheets("Dates").Range("A2").Value= ' ??? Date of macro executed
是否有代码可以告诉我们何时执行宏?不是上次修改的日期,所以我可以比较两个日期?
由于
答案 0 :(得分:2)
我在运行时使用此代码执行隐藏工作表上的类似操作:
Dim LastRunDate As Date
Dim LastRunTime As Date
Dim CurrentDate As Date
Dim CurrentTime As Date
CurrentDate = Format(Now, "dd/mm/yyyy")
CurrentTime = Format(Now, "hh:mm:ss")
LastRunDate = WB1.Names("LastRunDate").RefersToRange
LastRunTime = WB1.Names("LastRunTime").RefersToRange
LastRunTime = LastRunTime + TimeSerial(0, 10, 0)
If CurrentDate <= LastRunDate Then
If CurrentTime <= LastRunTime Then
End
End If
End If
Range(WB1.Names("LastRunDate")) = CurrentDate
Range(WB1.Names("LastRunTime")) = CurrentTime
因此,如果代码已在最近10分钟内运行,那么这只会成功。我只是在该代码之后强行保存一下
答案 1 :(得分:2)
通过最后修改,我假设你想要上次保存工作簿的日期?如果是这样的话:
Private Sub Workbook_Open()
Sheets("Dates").Range("A1").Value = NOW()
End Sub
Sub YourMacro()
'Whatever code the macro runs
Sheets("Dates").Range("A2").Value = NOW()
End Sub
答案 2 :(得分:1)
默认情况下,Excel不会存储这样的数据,但您可以创建一个非常隐藏的工作表来在实例之间存储数据。在您的情况下,为每个宏创建一个隐藏的工作表,然后将代码添加到例程中,该例程将当前日期存储到该行的单元格中,您可以在以后调用该