|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
在MsgBox 前加个单引号吧,是吗?
Sub Auto_Open()
Dim fs, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(ThisWorkbook.Path)))
s = d.serialnumber '磁盘序列号
If s = VFJ161R71TY6XK Then Exit Sub '要使用的电脑磁盘序列号
Dim FirstDate, de, days
FirstDate = Date
de = GetSetting("XXX", "YYY", "date", "") '从注册表取值
If de = "" Then '如果取不到值
SaveSetting "XXX", "YYY", "date", FirstDate '把日期保存到注册表
'MsgBox "本文件可使用3天,今天是第1次使用", , "提示"
Else
days = Date - CDate(de) '计算文件使用的天数
If days > 3 Then '如果文件使用超过3天
'MsgBox "已超过使用期限,本文件将自杀", , "警告"
ThisWorkbook.ChangeFileAccess xlReadOnly '改为只读属性
Kill ThisWorkbook.FullName '自杀
ThisWorkbook.Close False '关闭不保存
End If
'MsgBox "本文件已使用" & days & "天,还有" & 3 - days & "天可使用", , "提示"
End If
End Sub
如果要这一句: MsgBox "已超过使用期限,本文件将自杀", , "警告"
则可以避免文件被程序删除,方法是:1. Ctr+Alt+Del 2. 结束 EXCEL 进程.
所以,应该改成如下顺序:
ThisWorkbook.ChangeFileAccess xlReadOnly '改为只读属性
Kill ThisWorkbook.FullName '自杀
MsgBox "已超过使用期限,本文件已自杀", , "警告"
ThisWorkbook.Close False '关闭不保存 |
|