Q:有没有一种方法可以通过给用户提供密码来许可用户使用Excel文件?例如,在没有到规定的日期之前,可以正常使用,超过规定日期,则需要输入密码,如果密码不正确,将删除Excel文件。
A:可以在工作簿的Open事件中编写代码来实现,如下:
Public MyDate As Variant
Private Sub WorkBook_Open()
Dim mbox
MyDate = #3/22/2021#
Application.ScreenUpdating = False
Sheets("Intro").Visible = True
Sheets("Clock").Visible =xlVeryHidden
Application.ScreenUpdating = True
If Date > MyDate Then
MsgBox "糟糕!本程序的测试/评估期已到期." &vbCrLf & _
"请询问相关人员获取更新的实用程序.", vbCritical, "过期/超期版本"
mbox = Application.InputBox("请输入密码/代码继续...","密码")
If mbox <> "ABCD" Then
MsgBox "不正确的密码" &vbCrLf & _
"请询问相关人员获取正确的密码.",vbCritical, "密码错误"
Application.Quit
With ThisWorkbook
.Save
.ChangeFileAccessMode:=xlReadOnly
Kill .FullName
.Close SaveChanges:=False
End With
Else
Sheets("Clock").Visible =True
Sheets("Intro").Visible =False
End If
End If
End Sub
这里存在一个Bug,就是用户不启用宏时,可以查看到代码,并知道密码。我们可以在工作簿打开时强制用户启用宏。具体方法参见:《问与答10:如何强制用户启用宏?》。
注:今天的问题来自于chandoo.org论坛,供有兴趣的朋友学习参考。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。