excel - 如何过滤行,隐藏/取消隐藏受保护工作表中的列?
问题描述
我有一个用于小组协作的 Excel 工作表。它受密码保护。
由于密码保护限制,我正在尝试编写 VBA 代码,以便其他用户在受保护的工作表中仍然可以过滤行、隐藏/取消隐藏列。
它位于 ThisWorkbook 中,如下所示:-
Private Sub Workbook_Open()
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.Protect Password:="LoveisPatience", _
UserInterFaceOnly:=True
Next wSheet
With ActiveSheet
.Protect Password:="LoveisPatience", AllowFiltering:=True
.EnableSelection = xlUnlockedCells
End With
With ActiveSheet
.Protect Password:="LoveisPatience", AllowFormattingColumns:=True
.EnableSelection = xlUnlockedCells
End With
End Sub
使用上面的代码,我设法隐藏了以前使用“数据选项卡>组”完成的列,但我无法取消隐藏任何列。
并且由于包含此“AllowFormattingColumns:”,行的“AllowFiltering”功能现在无法使用。
如何使过滤行和隐藏/取消隐藏列无缝工作?
解决方案
以下代码适用于我:
Private Sub Workbook_Open()
Dim wSheet As Worksheet
For Each wSheet In Worksheets
wSheet.Protect Password:="password", UserInterFaceOnly:=True
Next wSheet
With ActiveSheet
.Protect Password:="password", AllowFiltering:=True, AllowFormattingColumns:=True
.EnableSelection = xlUnlockedCells
End With
问题似乎是两个 with 语句之间的不一致。第二个 with 语句(格式化列)阻止了第一个(过滤)。这有点奇怪,因为这些行应该是解锁的。
对你起作用吗 ?
干杯
推荐阅读
- neo4j - 有没有办法我可以返回所有节点的关系以及以下查询的属性
- java - 如何在 RxJava2 中的 groupBy 之后获取类中的原始元素?
- c++ - 包装不同的 std::vector
在同一个界面 - java - 无法在 Android Box 设备上安装“启动器”应用
- javascript - 如何将 JSON 转换为以下结构的数组
- liquidsoap - 从脚本而不是命令排队liquidsoap请求
- kotlin - 在 Kotlin 中创建异步函数
- jquery - 如何使可排序 jquery-ui 列表中的某些项目禁用排序?
- excel - 如何改进从 Excel 选择到文本文件的导出?
- node.js - 从 JSON 对象获取字符串,并从另一个对象获取 args