在Excel 2013中禁用高级过滤器

在Excel 2013中禁用高级过滤器,excel,excel-2013,vba,Excel,Excel 2013,Vba,我想知道是否有人能帮我禁用Excel 2013中的高级过滤器选项 我已使用以下选项禁用所有其他数据功能区选项: .Protect UserInterfaceOnly:=True 但仍然可以选择高级过滤器。有了这个,他们可以取消过滤数据 以下代码用于旧版本的Excel,但我似乎无法将其用于Excel 2013: Application.CommandBars("Worksheet Menu Bar").Controls _ ("&Data").Controls("&

我想知道是否有人能帮我禁用Excel 2013中的高级过滤器选项

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

.Protect UserInterfaceOnly:=True
但仍然可以选择高级过滤器。有了这个,他们可以取消过滤数据

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

    Application.CommandBars("Worksheet Menu Bar").Controls _
    ("&Data").Controls("&Filter").Controls("&Advanced Filter...").Enabled = False
如果有人能帮我解决这个问题,或者给我指出正确的方向,我将不胜感激

谢谢各位


建议的解决方案
这种方法将隐藏用户界面上的按钮:这种解决方案的优点是代码不在VBA中(完全),因此,用户修改它(或知道后台发生了什么事情)并不容易。
回答解释/下一步
这是一个非常深刻的答案,涉及到很多步骤,所以,我将发布一些指导和一些有用的链接,这样你可以先研究一下。
一,。下载:这有助于修改文档的用户界面。
二,。寻找教程;开始编写一些基本的代码,比如添加选项卡和按钮,
三,。返回Excel,查找生命周期和自定义事件,
四,。加载功能区时,您需要捕获事件;此时,您需要禁用该按钮,这些链接(,)有助于显示该按钮的步骤和一些示例工作簿。
五,。找到按钮的ID并将其禁用(提示:idMSO=AdvancedFilterDialog,如果您遵循了前面的步骤,那么在这里就有意义了-)。
进一步信息/回答免责声明
Excel不是一个能够深入处理安全问题的软件;如果您试图在原始文件中以某种方式限制用户,则应尝试其他方法-IG:工作簿的副本仅供参考,而主工作簿保存在sharepoint中,仅可由授权人员修改-。


虽然S.O中的FAQ严格要求引用其他网站而不使用适当的引用,但这是一个深入的解决方案,即使是一个随机的例子,也需要页面来解释;根据指导主题,这个答案应该没问题。

您希望通过阻止他人更改过滤器获得什么好处?如果您有不希望他人查看的数据,则只授予对已编辑文档的访问权限。任何有权访问过滤后的电子表格的人仍然可以读取底层文件以查看隐藏的数据。嗨,Phylogenesis。我已经编写了基于计算机用户名
Int(Environ(“username”)
检测用户员工ID的代码,它过滤数据以仅显示他们的数据。我已保护该工作表,因此他们无法访问任何其他内容,但高级过滤器选项导致了问题。我明白,如果他们真的想进入代码中禁用此功能,那么他们可以,但这只是为了阻止大多数用户访问此功能。问题是,您可以在Excel之外读取文件(或使用VBA)来读取隐藏数据。如果你这样做是出于安全考虑,那简直是浪费时间。这部分是出于安全考虑,但我理解,如果他们真的想访问数据,他们可以获取数据。然而,如果我可以禁用高级过滤器,他们就需要不遗余力地访问它。即使如此,我还是想了解在Excel 2013中这是否可行,或者他们是否阻止我们禁用此功能。感谢您必须明确:一旦您允许某人打开Excel文件,就有许多可能绕过Excel安全性(如果您甚至可以这样称呼的话)。请记住,保护只与实施它的软件一样好。Excel文件只能用MS Excel打开!还有很多程序,一旦文件打开,它们就不会执行任何类型的保护。然而,更简单一点:只需创建一个新的空Excel文件,并将公式
=[ProtectedExcelFile.xlsm]Sheet1放入单元格
A1
!A1
并向下和横向复制公式。这里有一个未受保护的副本。