问与答121:如何让用户输入密码后才能使用Excel文件?

2021-05-07 10:39:55 浏览数 (1)

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论坛,供有兴趣的朋友学习参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

0 人点赞