使用 VBA 解锁 Excel 中的编辑区域

使用 VBA 解锁 Excel 中的编辑区域

每当数据输入到不同的列时,我都会使用 VBA 将信息添加到我的电子表格中。但是,要做到这一点,我需要在 VBA 脚本中解锁和锁定工作表。这需要用户重新输入密码才能编辑下一行。有没有解决方法?

答案1

我对这个问题进行了一些快速研究,发现 Thales 提到的一个选择是将密码作为参数传递到 VBA 中。

'Protect worksheet with a password
Sheets("Sheet1").Protect Password:="myPassword"

'Unprotect a worksheet with a password
Sheets("Sheet1").Unprotect Password:="myPassword"

这样做的缺点是,任何能打开你的代码的人都会看到你的密码。因此,如果你选择这种方式,你可能需要创建第二个密码来保护你的宏代码。请参阅下面的链接。

https://stackoverflow.com/questions/11981410/unprotect-sheet-with-password-without-exposing-password-in-the-macro

编辑:根据您上面的评论,它可能会帮助我们查看您的代码,然后我们可以找出处理密码的地方。

答案2

我可以向您建议两种可能的方法,允许某些用户编辑指定的数据范围。

方法 1(VBA 宏):

Private Sub Workbook_Open()

Dim winUser As String

winUser = Environ("username")

If winUser = "Admin" Then

Range("A1:I100").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="AdminRange", Range:=Range( _
    "A1:I100"), Password:="123"
End If

If winUser = "User1" Then

Range("A200:I400").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="User1Range", Range:=Range( _
    "A200:I400"), Password:="231"
End If
End Sub

方法 2:

  1. 审阅选项卡然后点击允许用户编辑范围
  2. 点击新的按钮然后新品对话框将会出现。
  3. 范围名称单元格引用(范围)&密码(密码可选)。
  4. 点击权限, 然后添加打开选择用户或组
  5. 如果找不到名称/组,请单击先进的按钮。
  6. 点击立即查找
  7. 然后点击用户或组最后好的按钮。
  8. 添加用户/组名后,您可以定义是否需要密码来编辑范围。
  9. 最后完成好的

笔记, 根据需要调整单元格引用并更改 VBA 代码中的用户名称。

相关内容