2016-08-17 86 views
1

我在想,如果有人可以帮助我在Excel 2013年禁用高级筛选选项禁用高级筛选2013

我已经使用了以下禁用所有其他数据丝带选项:

.Protect UserInterfaceOnly:=True 

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

用于较老版本的Excel工作,但我似乎无法得到它为Excel 2013工作,下面的代码:

Application.CommandBars("Worksheet Menu Bar").Controls _ 
    ("&Data").Controls("&Filter").Controls("&Advanced Filter...").Enabled = False 

如果有人可以帮我这个或点我在正确的方向那么将不胜感激。

谢谢你们。

+0

你希望从阻止某人更换过滤器中获得什么?如果您有不希望人们查看的数据,则只允许访问已编辑的文档。任何有权访问过滤电子表格的人都可以阅读底层文件以查看隐藏的数据。 – Phylogenesis

+0

嗨植发。我编写了代码来检测基于计算机用户名“Int(Environ(”Username“))的用户ID,并过滤数据以仅显示其数据。我保护了工作表,因此他们无法访问其他任何内容,但高级过滤器选项导致了问题。我明白,如果他们真的想让代码禁用它,那么他们可以但这只是阻止大多数用户访问此。 –

+0

问题是,您可以读取Excel以外的文件(或使用VBA)来读取隐藏的数据。如果你出于安全考虑而这样做,那就太浪费时间了。 – Phylogenesis

回答

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.您需要在加载功能区时捕获事件;在那段时间,您需要禁用按钮,这些链接(1,2)对于显示步骤和一些示例工作簿很有用。
5.找到该按钮的ID并将其禁用(提示:如果您已经按照前面的步骤操作,则idMSO = AdvancedFilterDialog,这在此处是有意义的)。
更多信息/回答免责声明
Excel是不是可以深深处理安全软件;如果您试图在原始文件中以某种方式限制用户,则应尝试其他方法-IG:工作簿的副本仅供参考,而主节点的副本仅保存在共享点中,且只能由获得授权的人员修改。

虽然S.Oo中的FAQ对于引用其他站点时没有使用适当的引用是严格的,但这是一个深层次的解决方案,即使是一个随机示例也需要页面解释;呼吁指导主题,这个答案应该没问题。