我有一张不受保护的工作表,以便用户可以在每个字段中输入信息,但我需要保护工作表不被排序。排序似乎搞砸了工作表中的公式和链接。我已经看到了很多关于如何保护纸张但允许分类的帮助,但不是我的问题,而是与此相反。
看起来它应该非常简单;这就是我现在所拥有的:
Sub ProtectRevHistory()
Worksheets("Revision History").Protect Contents:=False, AllowSorting:=False, UserInterfaceOnly:=True
End Sub
我没有遇到任何错误,但它不能保护排序。这甚至可以吗?
最终,如果我能让它工作,我想从Workbook_Open()
事件中运行它,但是当我将此代码放在ThisWorkbook对象中时,它会在打开时询问我是否有密码,即使我离开了密码参数关闭。只需输入密码就会给我一个错误,也不会保护排序。
答案 0 :(得分:0)
所以我崩溃并使用宏编辑器来看看这是否有助于我解决这个问题,我确实让它发挥作用。之后,我能够将它放在Workbook Open事件中,以便它在打开时运行。这是它的样子:
Private Sub Workbook_Open()
Sheets("Revision History").Protect Password:="StrongPasswordHere", DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowFiltering:=True, AllowUsingPivotTables:= _
True
End Sub
可能有一些关于我不完全理解的参数,当它们列出时都能使它工作。我不确定。但至少对于那些需要它的人来说,现在已经存在了!关于它的好处是数据选项卡上的所有排序功能都是灰色的。如果您尝试在Filter中进行排序,它也不起作用。成功!!