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

excelperfect

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)

相关推荐