在Excel中locking单元格,但仍允许显示/隐藏

我正在build立一个Excel表格。 Excel工作表将根据在不同的单元格中select的内容显示或隐藏某些行。 例如(伪)。

如果B6 =“是”,则显示第7行,否则隐藏第7行。

我想locking单元格,以便它们不能更改标题和标题,但仍可以在某些情况下隐藏行。 当单元格被locking时,我的VBA代码无法隐藏或取消隐藏行。

任何帮助,将不胜感激; 我已经寻找答案,但没有find我的具体情况。

以下是我创build的一个例程,用于locking所有内容,但允许尽可能多的function。 您可以根据需要编辑参数。 运行后,我可以隐藏一行。

Sub ProtectSheetsNoPassword() Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook For Each ws In wb.Worksheets ws.Protect DrawingObjects:=True, _ Contents:=True, _ Scenarios:=True, _ AllowFormattingCells:=True, _ AllowFormattingColumns:=True, _ AllowFormattingRows:=True, _ AllowInsertingColumns:=True, _ AllowInsertingRows:=True, _ AllowInsertingHyperlinks:=True, _ AllowDeletingColumns:=True, _ AllowDeletingRows:=True, _ AllowSorting:=True, _ AllowFiltering:=True, _ AllowUsingPivotTables:=True 'ws.Unprotect 'Uncomment if you want to unprotect the sheets Next End Sub 

AllowFormattingRows:=True参数是您需要关注的隐藏行。

当保护工作表时,您可以指出用户应该能够做什么以及不能做什么。 我相信下面的代码将实现你想要的:

 Sheet1.Protect Password:="yourPassword", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True, UserInterfaceOnly:=True