Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:在过期后禁用代码_Excel_Vba - Fatal编程技术网

Excel VBA:在过期后禁用代码

Excel VBA:在过期后禁用代码,excel,vba,Excel,Vba,有一个客户端希望“日落”他们的Excel应用程序,以便VBA代码在120d内无法工作。他们知道,任何解决方案都不会100%有效,但除了检查今天的日期和存储的首次使用日期之外,还有什么想法吗?您需要比较两个日期之间的差异,其中一个日期是任意的“启动”日期,第二个日期是今天 最简单的方法是使用函数DateDiff(): 这将返回一个数字,表示两个日期之间的天数(“d”…如果您希望答案以月为单位,可以使用“m”等)。因为我是在2018年5月17日做的,所以我的Date()函数返回2018年5月17日,

有一个客户端希望“日落”他们的Excel应用程序,以便VBA代码在120d内无法工作。他们知道,任何解决方案都不会100%有效,但除了检查今天的日期和存储的首次使用日期之外,还有什么想法吗?

您需要比较两个日期之间的差异,其中一个日期是任意的“启动”日期,第二个日期是今天

最简单的方法是使用函数DateDiff():

这将返回一个数字,表示两个日期之间的天数(“d”…如果您希望答案以月为单位,可以使用“m”等)。因为我是在2018年5月17日做的,所以我的Date()函数返回2018年5月17日,这将取两者之间的差值,输出16

因此,代码应该是:

Dim dif As Single
Dim launch As String

launch = "1/1/2018" 'arbitrary start date

dif = DateDiff("d", launch, Date())

If dif > 120 Then 'on May 17th, this number is 136
    MsgBox "Your VBA is out of date"
    Exit Sub
Else
    'Do the rest of your code
End If

您描述的方法似乎是显而易见的方法。
Dim dif As Single
Dim launch As String

launch = "1/1/2018" 'arbitrary start date

dif = DateDiff("d", launch, Date())

If dif > 120 Then 'on May 17th, this number is 136
    MsgBox "Your VBA is out of date"
    Exit Sub
Else
    'Do the rest of your code
End If