即使关闭也将全局变量存储在 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 使用它们。
我有一个问题,不知道是否有答案。
我想做的是在一整天内跟踪全局变量中宏的使用情况。我希望这个宏每天只能 运行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 使用它们。