调出 Excel 排序对话框

调出 Excel 排序对话框

我必须对受保护的工作表进行排序,并且需要执行取消保护-排序-保护的过程。

问题是这样,我复制了(不太完美)Excel 自己的排序功能,并遇到了可预见的问题。

我已将工作表设置为受保护,并选择在“保护工作表”窗口上的“允许此工作表的用户”上启用“排序”,但这并不能按预期工作。

我当时想尝试调出 Excel 的排序对话框(见下文)。这会向我们开发人员公开吗?

在此处输入图片描述

答案1

尝试使用自动筛选。这将允许您保护工作表,并允许用户对列进行排序。

答案2

这将显示“排序”对话框(在 XL 2010 上测试)。如果当前选择不包含可排序内容,它将显示带有错误消息的 Msgbox。请注意,如果选择了整列,它不会像 Excel 通常那样提示用户扩展其选择。一种选择是在显示对话框之前选择 UsedRange 或其他范围。您需要进行实验。

Excel 2007 上有一个新的 Sort 对象,用于存储要排序的字段,但我不知道它如何与该对话框交互,如果它确实交互的话。

您可以找到 xlDialogSort 参数的列表这里

 Sub ShowSortDialog()

    On Error Resume Next
    Application.Dialogs(xlDialogSort).Show
    If Err.Number = 1004 Then
        MsgBox "Place the cursor in the area to be sorted"
    End If
    Err.Clear

    End Sub

相关内容