我试图隐藏一些列,并防止用户有任何访问他们;而他们可以编辑工作表的其他部分。
我所追求的是这样的:
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
这就是问题所在:用户仍然可以选择一个包含这些隐藏和锁定列的区域并取消隐藏它们。2是否有任何方法或技巧,如VeryHidden
用于工作表的区域?
1条答案
按热度按时间7xzttuei1#
原始答案:
如果用户不需要格式化列和行,那么有一个解决方案:
如果
AllowFormattingColumns
和AllowFormattingRows
为false(如果没有说明,则为默认值),则用户将无法隐藏或取消隐藏它们。更新:
下面的功能“非常隐藏”只列基于上述想法;
如果你想完全隐藏行,那么将
AllowFormattingRows
设置为false。