首发于 VBA说
【源代码】Excel定时自毁,你值得拥有

【源代码】Excel定时自毁,你值得拥有

有没有VBA使用次数达到100次自杀的代码?

答案:有



▶分为几种方法,先说一下最简单的。


❶达到某个指定日期,工作簿自行销毁

Private Sub workbook_open()
    Rem ***************************
    Rem  功    能: 定时自毁
    Rem  欢迎关注公众号:VBA说
    Rem ***************************
    On Error Resume Next
    Application.DisplayAlerts = False
    If Now() >= CDate("12/26/2020 10:22:00") Then
        ActiveWorkbook.ChangeFileAccess xlReadOnly
        Kill ActiveWorkbook.FullName
        Application.Quit
    End If
    Application.DisplayAlerts = Ture
End Sub


把这段代码放到工作簿事件里,就可以了。


最后文件到期的话,效果是这样的,打开就自动删除自己了。



这种方法对于VBA小白来说,足够了



❷达到一定次数,自行销毁

这种方法,直接将工作簿使用次数记录在注册表中,每次打开工作簿就读取注册表中的数据。获取已使用次数。

Private Sub Workbook_Open()
    Dim counter As Long, term As Long, chk
    chk = GetSetting("hhh", "budget", "使用次数", "")
    If chk = "" Then
        term = 50 '限制使用50次
        MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超过次数将自动销毁!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", term '将值写入注册表
        counter = Val(chk) - 1 '计算剩余使用次数
        MsgBox "你还能使用" & counter & "次,请及时注册!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", counter '写入剩余次数
        If counter <= 0 Then '如果使用次数用完,就删除注册表记录使用次数的信息,调用自毁代码
            DeleteSetting "hhh", "budget", "使用次数"
            killme
        End If
    End If
End Sub
Public Sub killme()