在Excel 2013中禁用高级筛选器

时间:2016-08-17 16:15:51

标签: excel excel-vba excel-2013 vba

我想知道是否有人可以帮我禁用Excel 2013中的“高级过滤器”选项。

我已使用以下内容禁用所有其他数据功能区选项:

        $command = new PDFClassementCommand();
        $input = new ArrayInput(array('id' => $id, 'errata' => $errata, 'precision' => $precision, 'group' => $group, 'logoAnnee' => $logoAnnee));
        $output = new NullOutput();

        $process = new Process($command);
        $process->disableOutput();
        $process->start();

但仍然可以选择高级过滤器。有了它,他们可以不过滤数据。

以下代码曾用于旧版本的Excel,但我似乎无法使其适用于Excel 2013:

.Protect UserInterfaceOnly:=True

如果有人能帮我解决这个问题或者指出我正确的方向,那么我们将不胜感激。

谢谢你们。

1 个答案:

答案 0 :(得分:1)


解决方案建议
该方法将隐藏用户界面上的按钮:此解决方案的优势在于代码不在VBA中(完全),因此,并非那么容易供用户修改(或知道)后台发生了什么事。
答案说明/后续步骤
这是一个非常深刻的答案,涉及到许多步骤,所以,我只是发布指导和一些有用的链接,这样你就可以先研究它。
1。下载Custom UI Editor for Microsoft Office:这有助于修改文档的用户界面。
2。寻找教程;开始使用添加标签和按钮等基本内容进行编码,(this is a good one)
3。返回Excel,查找生命周期和自定义事件this is a good place to start
4。加载功能区时,您需要捕获事件;在那个时候,您需要禁用该按钮,这些链接(12)对于显示步骤和一些示例工作簿非常有用。
5。找到该按钮的ID并将其禁用(提示:idMSO = AdvancedFilterDialog,如果您已按照前面的步骤操作,则此处有意义 - )。
更多信息/免责声明
Excel不是一种可以深入处理安全性的软件;如果你试图在原始文件中以某种方式限制用户,你应该尝试其他方法-IG:一个工作簿的副本仅供参考,而主要一个保存在一个只有经过授权的人可以修改的共享点 - 。<登记/>
虽然S.O中的常见问题解答严格来说是在没有使用适当参考的情况下引用其他网站,但这是一个深入的解决方案,即使是一个随机的例子也可以用页面来解释;这个答案应该没问题。