假设我有一个包含两个工作表的工作簿。
我通过以下代码保护sheet2:
Sub test()
Worksheets(2).Cells.Locked = True
Worksheets(2).Protect DrawingObjects:=False
End sub
(我已经设置了DrawingObjects:= False,因为我仍然希望能够编辑表单)
保护在sheet2上完成了我的预期,当我双击一个单元格时,它会显示警告"您尝试更改的单元格或图表位于受保护的工作表上。要进行更改,请取消保护工作表。可能会要求您输入密码。"。
但是,如果双击的单元格包含例如SUM公式,则会突出显示公式所引用的范围。如果它是引用sheet1中范围的SUMIFS公式,则会激活sheet1。
关于如何在不禁用双击的情况下防止这种情况的任何想法?
谢谢。
答案 0 :(得分:1)
在保护工作表时,您只需要 取消选中 选项
允许此工作表的所有用户:
Select locked cells
VBA等价物是:
ActiveSheet.EnableSelection = xlUnlockedCells
启用单元格选择有三个选项:
要允许用户选择单元格(并查看内容),但禁止双击,您可以 检查 {的选项{1}}然后将代码添加到工作表模块:
Select locked cells
(要打开工作表模块,请右键点击屏幕底部的工作表标签,然后选择Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
。
请注意,用户仍然可以通过单击公式栏或在选择单元格后按 F2 来编辑单元格的公式(并因此勾勒出公式中包含的单元格范围)(尽管the formula bar can be removed也是如此。)