【发布时间】:2020-12-10 05:34:24
【问题描述】:
我创建了一个宏,允许用户从下拉列表中选择一个选项,该选项取消隐藏与其选择对应的选定行。问题是当我保护工作表时,当我为下拉列表选择一个选项时,我收到以下错误“运行时错误'1004'”。我需要保护此表,以便用户无法触摸显示的数据集。这是一个示例代码(原版很长):
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Activate
If Not Application.Intersect(Range("C15"), Range(Target.Address)) Is Nothing Then
Select Case Target.Value
Case Is ="Option 1"
Rows("17:75").EntireRow.Hidden = True
Case Is ="Option 2"
Rows("17:28").EntireRow.Hidden = False
End Select
End If
End Sub
我一直在阅读其他主题,并且遇到了一些选项说我需要取消保护和保护我的工作表,但我不确定如何将其添加到上面的代码中。如果这是我想要完成的最佳选择
选项 1
Sub UnprotectAll()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Unprotect Password:=yourPassword
Next sh
End Sub
Sub ProtectAll()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Protect Password:=yourPassword
Next sh
End Sub
选项 2 - 在下面某处添加此代码
UserInterFaceOnly:=True
对我如何实现这一点有什么建议吗?完整的代码是什么样的?
非常感谢!
【问题讨论】: