请选择 进入手机版 | 继续访问电脑版

库管易

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

使用VBA实现Excel自毁功能

热度 3已有 6908 次阅读2015-9-24 22:47 | Excel

  曾经看到过一个关于Excel自毁功能的视频教程,经认真学习后,我写下了自己的代码,分享于此。

  实现思路:
  使用VBA创建一个隐藏的名称,记录当前工作簿打开的次数,如果次数超过指定数值,则自动删除本工作簿。

  应用范围:
  1、用于VBA开发时,发给别人测试某功能(因测试版,不应发放到外部,所以添加自删除功能)。
  2、出于其它原因,需要限定用户使用次数的。

  事件代码(ThisWorkbook):
  在Excel打开时判断是否需要读取运行次数。(首先判断用户名称,避免调试时,删掉自己的“劳动成果”)

Private Sub Workbook_Open()
    If Application.UserName <> "Name" Then
        Call ReadOpenCount
        ThisWorkbook.Save
    End If
End Sub

  过程代码(模块):
  1、添加一个隐藏的名称,用于记录打开的次数。

Sub AddHiddenNames()
    ThisWorkbook.Names.Add Name:="OpenCount", Visible:=False, RefersTo:="=0"
End Sub

  2、读取工作簿已经打开的次数,如果达到次数"自毁",未达到"次数"+1。(本段代码,定义的是3次)

Sub ReadOpenCount()
    Dim iCount As Byte
    iCount = Evaluate(ThisWorkbook.Names("OpenCount").RefersTo)
    iCount = iCount + 1
    If iCount > 3 Then
        Call KillThisWorkBook
        Else
        ThisWorkbook.Names("OpenCount").RefersTo = "=" & iCount
    End If
End Sub

  3、实现“自毁”功能,但是不提示用户。

Sub KillThisWorkBook()
    With ThisWorkbook
        .Saved = True
        .ChangeFileAccess xlReadOnly
        Kill .FullName
        .Close
    End With
End Sub

  虽然上述代码执行后,能得到预期的结果,但是别忘了,“宏”是可以被禁用的,甚至有的用户根本不知道该如何“启用宏”,这就不在本文记述的范围之内了。

路过

鸡蛋
2

鲜花

握手
1

雷人

刚表态过的朋友 (3 人)

手机版|仓库管理网

GMT+8, 2024-4-18 13:00

Powered by 库管易

KuGuanYi.Com

返回顶部