excel 如何禁用筛选器菜单中的排序选项?

bnl4lu3b  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(197)

当使用小过滤器下拉菜单对数据进行排序时,您无法撤消更改,这可能会扰乱数据的顺序。我的同事们都知道这一点,但有时有人意外地单击排序而不是筛选,我们需要用旧版本恢复工作簿。如何禁用所有人的选项?
上面的三个选项就是我要说的。

我想加上这样的东西:

Application.CommandBars("Cell").Controls("Sort by color?").Visible = False

可能会工作,但我不知道究竟用什么来代替“细胞”,或什么名称的控件。我在哪里可以找到他们的名字?

92vpleto

92vpleto1#

保护工作表:
1.从用户应该更改的所有单元格中删除单元格保护。(如果你愿意,这可以是整个表单)。
1.保护工作表,允许自动筛选(以及所有其他选项,如果您愿意),但不允许排序
之后,用户可以过滤,但不能排序。

n8ghc7c1

n8ghc7c12#

你可以使用这个宏来禁用排序,但允许过滤,像DisableSorting ActiveSheet一样调用它:

Option Explicit

Public Sub DisableSorting(WS As Worksheet)
    WS.Cells.Locked = False ' a)
    WS.Protect _
        DrawingObjects:=False, _
        Contents:=True, _
        Scenarios:=False, _
        UserInterfaceOnly:=True, _
        AllowFormattingCells:=True, _
        AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, _
        AllowInsertingColumns:=True, _
        AllowInsertingRows:=True, _
        AllowInsertingHyperlinks:=True, _
        AllowDeletingColumns:=True, _
        AllowDeletingRows:=True, _
        AllowSorting:=False, _
        AllowFiltering:=True, _
        AllowUsingPivotTables:=True
End Sub

但是,请注意,编辑单元格也是不可能的。无法禁用排序,但可以启用编辑。

更新1

正如P所指出的,如果您添加标有a)的行,则可以在禁用排序的同时允许过滤和编辑。

更新2

如果你想重新启用排序,你可以使用WS.Unprotect。如果更容易记住,你可以用这样的函数来实现:

Public Sub EnableSorting(WS As Worksheet)
    WS.Unprotect
End Sub

相关问题