出于测试目的,我们假设解锁工作簿的代码是1。 我希望打开时显示一个输入框,如果用户输入的代码不正确/或者在输入框中选择取消,则工作簿将关闭。
Private Sub Workbook_Open()
ActiveSheet.Range("A1").Activate
Code = Application.InputBox("Enter School Code", CancelCode)
If Code < 0 > 1 Or False Then
Code = Int(1)
MsgBox ("Unrecognised Code")
Application.Workbooks("CODING.xlsm").Close 'False
End If
End Sub
此时它会出现,但如果输入了任何数字则会运行,并且还会关闭输入框并在单击取消时允许访问。
答案 0 :(得分:2)
试试这个:
Private Sub Workbook_Open()
Dim Code As Variant
Code = Application.InputBox("Enter School Code", CancelCode)
If Not Code = 1 Then
MsgBox ("Unrecognised Code")
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
刚试过它,它对我有用。
但是,我应该补充一点,这是极低级别的安全性,任何对VBA有基本了解的人都可以绕过这种安全性。您只需在打开工作簿之前在另一个工作簿(或在VBA立即窗口中)中设置 Application.EnableEvents = False ,并且Workbook_Open事件根本不会运行。