TL; DR 使工作表可见会因工作表保护而产生错误,即使工作表不受保护!
散文中的问题: 我在excel中创建了一个应用程序,它使用单独的工作表作为用户界面。在顶部,我有一个对象列表,用作导航应用程序的按钮。这大部分工作都符合预期,但有时由于工作表保护而产生错误,尽管工作表没有受到保护。
按钮调用的代码:
Public Sub HideAllOtherSheets(targetSheet As Worksheet)
Dim Wkb As Workbook
Dim wks As Worksheet
Set Wkb = ThisWorkbook
'Ensure target sheet is visible
For Each wks In Wkb.Worksheets
If wks.Name = targetSheet.Name Then
wks.Visible = xlSheetVisible
End If
Next wks
'Now make all others invisible
For Each wks In Wkb.Worksheets
If wks.Name <> targetSheet.Name Then
wks.Visible = xlSheetVeryHidden
End If
Next wks
Set Wkb = Nothing
End Sub
错误:
运行时错误1004发生在第一个wks.Visible = xlSheetVisible
的行For ... Each
上,但不会一致地发生。
最奇怪的是......如果我再调试并按下F5,它会继续运行而不会重复出现错误消息!
我正在尝试使用.Protect UserInterfaceOnly:=True
,但又重新使用了该代码。自从试验以来,我遇到了这个问题。
我尝试了什么:
.Unprotect
语句,但错误仍然存在。据我所知,工作表被锁定甚至不应该。