希望能获得Excel 2010的帮助。
我有三张可见的纸张。在Workbook Open上,vba密码可以保护三张表中的每一张。
现在,每当我对任何工作表中的任何解锁单元格进行更改时,我都会收到4个受保护的工作表警告弹出窗口。那个说单元格被锁定而你必须取消保护才能进行编辑的那个?除了我没有编辑锁定的单元格外,这一切都很好。我在其他工作表中编辑未锁定的单元格!
有没有人有这种经历?我玩过了,其中两个可以分为两张。也就是说,当我只保护第一张时,我没有弹出窗口,当我只保护第二张时,我得到2,当我只保护第三张时,我得到2。
取出公式并没有什么不同。
以下是锁定的代码:
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"
非常感谢您的帮助。
编辑: 结果是组合框是错误的原因。如果链接的单元格被锁定,则只要工作表计算(自动计算时的任何更改)都会导致警告。现在,我的代码会对每个组合框GotFocus上的工作表进行取消保护,但除此之外,还会出现这些代码。
有中间地带吗?如何在没有这些警告的情况下锁定链接的单元格?除了选择之外,还有一种方法可以确保组合框击中链接的单元格吗?
谢谢!
答案 0 :(得分:1)
你的逻辑似乎错了。您取消保护工作表,然后保护可见工作表,然后保护整个工作簿(在最后一个代码行中)。
尝试这样的事情(未经测试):
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