VBA实现Excel打开指定次数后自杀

VBA实现Excel打开指定次数后自杀

上次我写了个VBA实现Excel指定时间才能打开~那能不能指定EXCEL表格打开指定的次数以后自杀呢?

什么叫自杀

很简单嘛,就是自己杀死自己!对于Excel来说,就是删除自己了!

如何实现?代码咯!可以参考如下代码:

  1. Private Sub Workbook_Open()   
  2. Dim n As Integer   
  3. Range("A65536").Value = Range("A65536").Value + 1   
  4. n = Range("A65536").Value   
  5. MsgBox "文件只能使用3次,您已用了" & n & "次!"  
  6. If n < 3 Then   
  7. ActiveWorkbook.Save   
  8. Else   
  9. With ThisWorkbook   
  10.         .Saved = True   
  11.         .ChangeFileAccess xlReadOnly   
  12.         Kill .FullName   
  13.         .Close False   
  14.     End With   
  15.   
  16. End If   
  17. End Sub   

以上代码就是指定Excel表格打开3次后自杀,当然次数可以自定义!

当然发出这个只是为了技术上的分享,大家没事不要拿自己宝贵的数据做测试,后果无法估量!谨慎使用!

备注:若要测试请勿拿真实数据测试,请记得备份!

分享到:

9 条评论

点击这里取消回复。
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

昵称
  1. 123

    搜了下BAIDU,知道了N=N+1的意思,我没接触过VB,但还是依葫芦画瓢做了这个,
    Private Sub Workbook_Open()
    Dim n As Integer
    Worksheets(“首页”).Range(“A1”).Value = Worksheets(“首页”).Range(“A1”).Value + 1
    n = Worksheets(“首页”).Range(“A1”).Value
    Dim savetime As String
    savetime = ActiveWorkbook.BuiltinDocumentProperties(“last save time”).Value
    If savetime = “” Then
    MsgBox ActiveWorkbook.Name & “工作簿没有保存”
    Else
    MsgBox “您好!这是您第” & n & “次使用本表格,上次使用时间是在” & savetime & “,祝您多用多开心”, , ActiveWorkbook.Name
    End If
    End Sub
    打开表格显示已经打开的次数,和上次保存的时间,这两个都是在博主上面看到的,
    一个是计次,一个是记录工作簿保存时间,3Q,非常有用

    1. Kael.Z

      你很不错,能举一反三,你也是高手~

  2. 123

    Range(“A65536”).Value = Range(“A65536”).Value + 1
    上面这句话没看懂,我想理解下整个这个操作的思路是不是这样的
    Private Sub Workbook_Open()
    Dim n As Integer ‘给n确定数据属性
    Range(“A65536”).Value = Range(“A65536”).Value + 1 ‘
    n = Range(“A65536”).Value
    MsgBox “文件只能使用3次,您已用了” & n & “次!” ‘提示信息内容
    If n < 3 Then ’
    ActiveWorkbook.Save
    Else
    With ThisWorkbook
    .Saved = True
    .ChangeFileAccess xlReadOnly
    Kill .FullName
    .Close False
    End With

    End If
    End Sub

    1. Kael.Z

      Range(“A65536″).Value = Range(“A65536″).Value + 1
      可以理解为n=n+1,其实就是个表达意思

      1. 123

        您好,能加个QQ联系吗,这个我想具体再问清楚些,我的4481819,

  3. 第二纪元

    挺有意思的!代码很想VB……

    1. Kael.Z

      其实就是VB在excel上的延伸!道理差不多~

  4. llisten

    的确是好东西。。。

    1. Kael.Z

      你想用吗~~