ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 425|回复: 11

[求助] 加载宏到期自杀怎么实现?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-18 15:50 来自手机 | 显示全部楼层 |阅读模式
加载宏到期自杀和文件到期自杀一样吗?怎么实现?

TA的精华主题

TA的得分主题

发表于 2024-3-18 16:11 | 显示全部楼层
Private Sub Workbook_Open()
    Call Main
   
    If DateDiff("d", ssz, DateSerial(2028, 7, 20)) < 0 Then  '
        MsgBox "此文件为收费版,请与共享者QQ888888联系!", 48, "温馨提醒您!"
        Call KillThisWorkbook
    Else
        Exit Sub
    End If
End Sub


评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 16:40 来自手机 | 显示全部楼层
sunshuangzhong 发表于 2024-3-18 16:11
Private Sub Workbook_Open()
    Call Main
   

这样不会把打开的文件也销毁了吧?

TA的精华主题

TA的得分主题

发表于 2024-3-18 16:42 来自手机 | 显示全部楼层
那设置一下,到期了,点击就退出宏

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-18 16:45 来自手机 | 显示全部楼层
shiruiqiang 发表于 2024-3-18 16:42
那设置一下,到期了,点击就退出宏

这个我知道怎么实现?想知道怎么到期销毁加载宏文件,不能把打开的文件也销毁了

TA的精华主题

TA的得分主题

发表于 2024-3-18 17:02 | 显示全部楼层
powerremain 发表于 2024-3-18 16:45
这个我知道怎么实现?想知道怎么到期销毁加载宏文件,不能把打开的文件也销毁了

你可以另存为xlsx文件副本,然后再销毁加载宏文件

TA的精华主题

TA的得分主题

发表于 2024-3-18 17:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub ss()
  2. Dim pth$, dt
  3. dt = #1/1/2024#
  4. If Date > dt Then
  5.     With ThisWorkbook
  6.         pth = Mid(.FullName, 1, InStrRev(.FullName, ".")) & "xlsx"
  7.         MsgBox "到期了"
  8.         .Saved = True
  9.         .SaveCopyAs pth
  10.         Workbooks.Open pth
  11.         .ChangeFileAccess xlReadOnly
  12.         Kill .FullName
  13.         .Close
  14.     End With
  15. Else
  16.     'MsgBox "还有" & dt - Date & "天过期"
  17. End If
  18. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-18 17:36 | 显示全部楼层
加载宏文件也是文件,知道是哪个文件,就能kill,是一样的

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-18 17:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Private Sub workbook_open()
  2.     '坛友提供,你参考
  3.     On Error Resume Next
  4.     Application.DisplayAlerts = False
  5.     If Now() >= CDate("9/26/2017 10:22:00") Then
  6.         ActiveWorkbook.ChangeFileAccess xlReadOnly
  7.         Kill ActiveWorkbook.FullName
  8.         Application.Quit
  9.     End If
  10.     Application.DisplayAlerts = Ture
  11. End Sub


  12. Sub test()
  13.     Const appName = "ExcelBookA"
  14.     Const section = "UsedInformation"
  15.     Const key1 = "第一次打开时间"
  16.     Const key2 = "上次打开时间"
  17.     Const key3 = "打开总次数"
  18.     Dim i%
  19.     Dim arr As Variant
  20.     Dim strInfo$
  21.     arr = GetAllSettings(appName, section)
  22.     If Not IsArray(arr) Then '如果注册表项存在则返回一个数组,如果第一次运行这段代码,注册表中不存在信息,则写入注册表
  23.     SaveSetting appName, section, key1, Now()
  24.     SaveSetting appName, section, key2, "没有记录"
  25.     SaveSetting appName, section, key3, 0
  26. End If
  27. i = GetSetting(appName, section, key3)
  28. SaveSetting appName, section, key3, i + 1
  29. arr = GetAllSettings(appName, section)
  30. strInfo = "以下是当前工作薄的使用情况:" & vbCr
  31. For i = LBound(arr) To UBound(arr)
  32.     strInfo = strInfo & vbCr & arr(i, 0) & ":" & arr(i, 1)
  33. Next
  34. strInfo = strInfo & vbCr & vbCr & "要清除记录信息吗"
  35. If MsgBox(strInfo, vbDefaultButton1 + vbYesNo) = vbYes Then
  36.     DeleteSetting appName
  37. Else
  38.     SaveSetting appName, section, key2, Now
  39. End If
  40. End Sub

  41. '完整案例
  42. Sub xieru()
  43.     Const appName = "ExcelBookA"
  44.     Const section = "UsedInformation"
  45.     Const key1 = "第一次打开时间"
  46.     Const key2 = "上次打开时间"
  47.     Const key3 = "打开总次数"
  48.     Dim i%
  49.     Dim arr As Variant
  50.     Dim strInfo$
  51.     arr = GetAllSettings(appName, section)
  52.     If Not IsArray(arr) Then '如果注册表项存在则返回一个数组,如果第一次运行这段代码,注册表中不存在信息,则写入注册表
  53.         SaveSetting appName, section, key1, Now()
  54.         SaveSetting appName, section, key2, "没有记录"
  55.         SaveSetting appName, section, key3, 0
  56.     End If
  57.     i = GetSetting(appName, section, key3)
  58.     SaveSetting appName, section, key3, i + 1
  59.     arr = GetAllSettings(appName, section)
  60.     If arr(2, 1) > 5 Then
  61.         MsgBox "使用次数到期!"
  62.         Call killme
  63.     Else
  64.     End If
  65. End Sub
  66. Sub killme()
  67.     On Error Resume Next
  68.     With ThisWorkbook
  69.         .Saved = True '先保存,否则转只读会有提示
  70.         .ChangeFileAccess xlReadOnly '转为只读
  71.         Kill .FullName
  72.         .Close False
  73.     End With
  74. End Sub



复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-18 17:38 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 18:38 , Processed in 0.047193 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表