如何保护工作表,以便用户可以对表格进行排序?
我有:
sort
,Select unlocked cells
和AutoFilter
来保护工作表。如果我点击标题旁边的按钮我可以过滤我的表格,但如果我想对其进行排序...我收到此错误消息:
您尝试更改的单元格或图表受到保护,因此是只读的。
要修改受保护的单元格或图表,请先使用“取消保护工作表”命令(“审阅”选项卡,“更改”组)删除保护。系统可能会提示您输入密码
但是如果我解锁标题,用户可以对其进行排序和编辑。不幸的是,我不希望他改变标题,只是对下面的单元格进行排序。这可能吗?
非常感谢您的答案!
*编辑
也许它只适用于 VBA (已添加标记VBA
)
答案 0 :(得分:0)
我也在寻找一段时间的答案,不幸的是我不认为没有vba是可能的。此外,我不认为通过单击列标题中的过滤器/排序按钮会触发事件,因此您需要添加一个按钮,该按钮运行以下示例代码(需要根据您的需要进行调整) :
Sub sortColumn()
'Unprotect sheet (Change "password" or remove it if you don't have any)
ActiveSheet.Unprotect Password:="password"
'Use Sort function (you can use the macro recorder to find the right code for other sorting/filter-options)
'Adapt Sheetname and Range of table to your needs
Sheets(1).AutoFilter.Sort.SortFields.Clear
Sheets(1).AutoFilter.Sort.SortFields.Add Key:= _
Range("A1:A10"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect Password:="password"
End Sub
高级解决方案可以是创建一个用户表单,用户可以在其中选择要排序的列和排序顺序(降序/升序)。