我创建了一个宏,该宏允许用户从下拉列表中选择一个选项,该选项可取消隐藏与其选择相对应的所选行。问题是当我保护工作表时,当我为下拉列表选择一个选项时,出现以下错误“运行时错误'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
关于如何实现此目标的任何建议?完整的代码是什么样的?
非常感谢!