受保护的表单警告任何编辑

希望能得到一些Excel 2010的帮助。

我有三个可见的表。 在打开工作簿时,vba密码可以保护三张表中的每一张。

现在,无论何时我对任何表格中的任何未locking的单元格进行更改,都会得到4个受保护的表格警告popup窗口。 那个说单元格被locking,你必须取消保护编辑? 这一切都很好,除了我不编辑locking的单元格。 我正在编辑其他工作表中的解锁单元格!

有没有人有这个经验? 我已经玩了,其中两个可以归因于两个表中的每一个。 也就是说,当我只保护第一张纸时,我没有popup窗口,当我只保护第二张时,我得到2,当我只保护第三张时,我得到2。

取出配方没有什么区别。

这里是locking的代码:

For Each wSheet In Worksheets wSheet.Unprotect Password:="JMP_DST_Lock" If wSheet.Visible = True Then wSheet.Protect Password:="JMP_DST_Lock", UserInterFaceOnly:=True wSheet.EnableOutlining = True End If Next wSheet ThisWorkbook.Protect Password:="JMP_DST_Lock" 

非常感谢您的帮助。

编辑:原来的combobox是错误的原因。 如果链接的单元格被locking,则在任何时候工作表计算(在自动计算时会发生变化)会导致警告。 现在,我有代码保护每个comboboxGotFocus上的工作表,但除此之外,这些正在出现。

有一个中间地带吗? 一种方法来保持链接的单元格locking没有这些警告popup? 一种方法来确保combobox正在击中链接的单元格,除了select?

谢谢!

你的逻辑看起来不对 您不保护工作表,然后保护可见工作表,然后保护整个工作簿(在最后一行代码中)。

尝试这样的事情,而不是(未经testing):

 For Each wSheet In Worksheets If wSheet.Visible = True Then wSheet.Protect Password:="JMP_DST_Lock", UserInterFaceOnly:=True wSheet.EnableOutlining = True End If Next wSheet 

如果将工作簿保存在保护状态的工作表中,请将其改为如下所示:

 For Each wSheet In Worksheets If wSheet.Visible = False Then wSheet.UnProtect Password:="JMP_DST_Lock" End If Next wSheet