【发布时间】:2017-04-28 17:51:06
【问题描述】:
我试图隐藏一些列并阻止用户访问它们;而他们可以编辑工作表的其他部分。
我正在寻找的是这样的:
ActiveWorkbook.Sheets("Name").Visible = xlSheetVeryHidden
所以用户看不到它们。我知道一个选项是添加另一张纸并将这些列移动到那里并隐藏该一张纸;但是由于我正在处理一个相对较大的数据集并且它在公司内部具有标准格式,所以我不想这样做。
我已经尝试锁定列并保护工作表并选中除用于选择锁定单元格、插入和删除行和列的所有框(代码如下)。
Function VeryHideColumn(myColumn As Range)
myColumn.Locked = True
myColumn.FormulaHidden = True
myColumn.Hidden = True
'myColumn.Hidden = xlVeryHidden 'I already tried this
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, AllowSorting:= _
True, AllowFiltering:=True, AllowUsingPivotTables:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Function
这就是问题所在:用户仍然可以选择包含这些隐藏和锁定列的范围并取消隐藏它们。是否有任何方法或技巧,如VeryHidden 用于范围可用的工作表?
【问题讨论】:
标签: excel vba show-hide protection