Excel 安全性对您的工作相当重要。 在本文中,我们将介绍通过Excel VBA为不同用户设置不同权限的方法。
在上一篇文章中 如何创建登录窗口以保护您的 Excel 工作簿,我们已经介绍了为您的 Excel 工作簿创建登录窗口的方法。 但是当多个用户需要访问文档时,您需要进行额外的设置。 此外,您需要保证这些用户不会对文件进行错误的更改。 现在请按照以下步骤操作,看看如何完成此任务。
设置不同的权限
假设现在有三个销售代表需要修改这个文件。 名称和密码设置如下图所示:
每个人都需要修改某个工作表。
- 按键盘上的快捷键“Alt+F11”打开Visual Basic编辑器。
- 然后在编辑器中插入一个新的用户表单。

- 在这一步中,将两个标签、两个文本框和两个按钮插入到用户表单中。
- 然后更改用户表单的标题和您在步骤 3 中插入的那些元素。您也可以参考下图:
- 之后,将第二个文本框的“PasswordChar”更改为“*”。
- 之后,双击用户表单。
- 接下来在模块中输入以下代码:
Private Sub CommandButton1_Click() Dim objTargetWorksheet As Worksheet If (TextBox1.Value = "John" And TextBox2.Value = "234") _ Or (TextBox1.Value = "Amy" And TextBox2.Value = "345") _ Or (TextBox1.Value = "Paul" And TextBox2.Value = "456") Then Me.Hide: Application.Visible = True For Each objTargetWorksheet In ActiveWorkbook.Worksheets If objTargetWorksheet.Name = TextBox1.Value Then objTargetWorksheet.Unprotect Password:=12345 Else objTargetWorksheet.Protect Password:=12345, DrawingObjects:=True, Contents:=True, Scenarios:=True End If Next Else MsgBox "Please input the right user name and the right password" End If End Sub Private Sub CommandButton2_Click() ThisWorkbook.Application.Quit End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ThisWorkbook.Application.Quit End Sub
在代码中,我们将保护其他工作表。 并且用户只能修改相应的工作表。 您也可以根据需要更改密码。
- 之后,双击 VBA 项目中的“ThisWorkbook”。
- 然后在其中输入以下代码:
Private Sub Workbook_Open() Application.Visible = False: UserForm1.Show End Sub
- 为了防止用户修改VBA代码,需要为VBA工程设置密码。 在我们之前的文章中 如何在 Excel 工作表中使用密码保护 VBA 代码,我们介绍了方法。 您还可以设置一个特殊的密码。
- 最后,保存这个Excel文件。
- 下次打开文件时,用户表单将不会出现。 您需要单击文件中的“启用内容”按钮。
- 然后您将看到“登录”窗口。 在两个文本框中输入名称和密码。
- 之后,单击窗口中的“登录”按钮。
此时,John 只能修改他的工作表。 他无法更改其他工作表或 VBA 代码。 另外,除了三名销售代表,没有其他人没有密码是无法打开这个文件的。 下次有这样的需求时,也可以为工作簿设置这样的登录窗口。
识别 Excel 损坏中的问题
有时 Excel 会由于多种因素而损坏。 在你之前tar如果不修复文件,您需要确定问题以及造成数据灾难的原因。 另外,如果你对数据恢复一无所知,你可以 修复损坏的 Excel xlsx 通过使用第三方工具。 配合最前沿的算法,这个工具可以处理almost 所有 Excel 错误。
作者简介:
Anna Ma 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复损坏的 docx 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com



