【发布时间】:2020-08-21 08:57:19
【问题描述】:
我想通过设置不同的密码来打开特定工作表来保护我的工作簿。
我想根据单元格值(在每张纸的 B2 范围内)设置条件。
例如,我有 3 个密码可以打开不同的工作表:
如果 passord= 123 并且如果每个工作表的 range(B2) 等于 "xxx",则打开 Range(B2)= "xxx" 的所有工作表
如果 passord= 456 并且如果每个工作表的 range(B2) 等于 "yyy",则打开 Range(B2)= "yyy" 的所有工作表
如果 passord= 789 并且如果每个工作表的 range(B2) 等于 "zzz",则打开 Range(B2)= "zzz" 的所有工作表
我编写了这段代码,通过设置一个 unic 密码来帮助我打开所有工作表:
Private Sub CommandButton2_Click()
Dim ws As Worksheet
'Open all sheets for admin
If Me.TextBox1.Value = "MC" Then
ThisWorkbook.Application.Visible = True
Me.Hide
Else
'Open all sheets where range(B2) = Planification et maintennace"
If Me.TextBox1.Value = "MC1" Then
For Each ws In ThisWorkbook.Worksheets
If ws.Range(B2).Value = "Planification et maintenance" Then
ws.Visible = True
End If
Next
'Open all sheets where range(B2) = Pole Essais"
If Me.TextBox1.Value = "MC2" Then
For Each ws In ThisWorkbook.Worksheets
If ws.Range(B2).Value = "Pole Essais" Then
ws.Visible = True
End If
Next
Else
MsgBox ("veuillez entrer un mot de passe valide !")
Unload Me
End If
End If
End If
End Sub
这段代码什么也没做,我该如何改进它以使其正常工作? 谢谢
【问题讨论】:
-
将
Range(B2)替换为Range("B2")。为什么最后都是你的End If?另外,与您的问题无关,但请考虑使用Select Case而不是多次使用If条件。 -
@romulax14 我做了更改,但仍然无法打开所需的工作表,
-
我已经对您的代码进行了更正,如果它有效,请告诉我