无法设置工作表类的可见属性

关于主题错误信息,Excelperformance出非常奇特的行为。 这不是众所周知的受保护的工作簿问题,因为我已经保护和不保护世界银行,只是为了排除潜在的问题,并且Workbook.ProtectWindowsWorkbook.ProtectWindows都是False 。 世行没有枢轴和图表相关的对象,所以也不是这样。 它也没有只剩下一张是可见的。 事实上,当试图通过代码隐藏任何20张时发生错误。

下面的代码从一个名为ProtectedSheets的表中ProtectedSheets标签名称和可见性设置[-1, 0, 2]以了解如何在Workbook_Close方法中设置该标签的可见性。 作为Excel应用程序的开发人员,我试图隐藏包含内部应用程序数据的特定选项卡,用户不需要混淆。

 Dim LO As ListObject: Set LO = [ProtectedSheets].ListObject Dim LR As ListRow Dim c1 As Range Dim c2 As Range For Each LR In LO.ListRows With LR.Range Set c1 = .Cells(LO.ListColumns("SheetName").Index) Set c2 = .Cells(LO.ListColumns("Visibility").Index) Worksheets(c1.text).Visible = c2 protectWS c1.text, True End With Next LR 

在执行包含Visible属性的代码行时,Excel会生成主题错误消息。 现在,这是蹭。 如果将WS添加为Watch项目,则可以在Watch窗格中编辑Visible属性,而不会生成错误。 同样,Visible属性也可以在“即时”窗格中进行更改,而不会生成错误。 但是,它在“debugging”窗格中停止。 嗯…

为了添加更多的特性,在Watch和Immediate窗格中,我发现当试图从2|xlSheetVeryHidden更改为-1|xlSheetVisible时,必须通过Visible属性来通过0|xlSheetHidden -1|xlSheetVisible 。 相比之下,直接从xlSheetVisiblexlSheetVeryHidden的相反方向不会产生错误。 但是,试图通过代码0复制这个传递失败,产生相同的限制并产生错误。 我发现这个属性的行为有很多不一致的地方。 任何对这里发生的事情的深入了解。