我正在制作一张excel表。 Excel工作表将根据在不同单元格中选择的内容显示或隐藏某些行。例如(伪)。
如果B6 ="是",则显示第7行,否则隐藏第7行。
我想锁定单元格以便它们不能更改标题和标题,但仍能在某些情况下隐藏行。当单元格被锁定时,我的VBA代码无法隐藏或取消隐藏行。
任何帮助将不胜感激;我已经找到了答案,但没有找到我的具体情况。
答案 0 :(得分:3)
这是我已经创建了一段时间来锁定所有内容的例程,但允许尽可能多的功能。您可以根据需要编辑参数。跑完之后,我能够隐藏一行。
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
参数是您需要关注的隐藏行的参数。
答案 1 :(得分:2)
保护工作表时,您可以指出用户应该做什么以及不能做什么。我相信以下代码将实现您的目标:
Sheet1.Protect Password:="yourPassword", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True, UserInterfaceOnly:=True