即使关闭也将全局变量存储在 Excel 中

Store global variable in Excel even when closed

我有一个问题,不知道是否有答案。

我想做的是在一整天内跟踪全局变量中宏的使用情况。我希望这个宏每天只能 运行ning 一次。我选择 运行 早上、中午或晚上。

例如:

今天是 13/01/2022。早上我 运行 这个宏并关闭了工作簿。我想在14号(另一天)之前不能运行这个宏,即使我13号下午重新打开Workbook,按宏按钮也不会运行.

所以我希望这个宏检查今天是否是 运行,然后如果答案是肯定的则不是 运行,但如果答案是否定的则 运行。这可以做到吗?我考虑过创建一个全局变量 was_run,但即使工作簿关闭并再次打开,我如何存储它的值?这可能吗?

感谢您的帮助!

请尝试下一种方式:

Sub myMacroRunningOnlyOncePerDay()
  Const myApp As String = "My Daily Variable", Sett As String = "Settings"
  Const strDate As String = "myDailyValue"
    
   Dim RegValue As String, NoRun As Boolean
   RegValue = GetSetting(myApp, Sett, strDate, "No value")
   If RegValue <> "No value" Then
        If IsNumeric(RegValue) Then
            If CLng(RegValue) = CLng(Date) Then NoRun = True
        End If
   End If
   If NoRun Then Exit Sub
   SaveSetting myApp, Sett, strDate, CStr(CLng(Date))
   MsgBox "It runs..."
End Sub

最好将常量(Registry 键)放在模块顶部(在声明区域)。通过这种方式,您可以从不同的 Subs 使用它们。