Excel思维单元格不锁定时会被锁定

时间:2013-06-02 17:57:34

标签: excel vba protection

我有一个非常复杂的工作簿,我已经非常严格地锁定了它,因此在用户使用时它不能失去其结构完整性。它在Excel 2003,2007和2010中的工作就像一个梦想但是当我在2013年使用它时如果我尝试输入一个未受保护的单元格excel认为它受保护,我可以手动取消保护表单它仍然不会让我输入然后,神秘地允许我不受保护工作表AGAIN,然后它允许我进入单元格并进入单元格格式化以证明单元格肯定没有被锁定。然后,当我导航到另一张受保护的纸张时,它变得更加复杂,然后我发现它没有受到保护......

我越来越多地弄乱了这张纸,问题似乎是当我的宏将我从一张纸移到另一张纸时,它认为它仍然在前一张纸上。

例如在前面板上我将单元格K16称为名为“ChangePW”的单元格

然后我运行我的宏来选择另一张表(如下所示)

Application.ScreenUpdating = False
Sheets("Income&Expenditure").Select
Worksheets("Income&Expenditure").Unprotect Password:="*****"
Range("B3").Value = "OSC" 
Worksheets("Income&Expenditure").Protect Password:="*****"
Range("B2").Select
Application.ScreenUpdating = True

然后我继续在收入和支出选项卡中输入一些数据,但即使我选择了未受保护的单元格,我也会收到警告,表明该表格已受到保护。然后我点击收入和支出表上的单元格K16,它仍然认为它叫做“ChangePW”。因此,它在收入和支出表上应用了前面板的保护布局。即使我点击底部的收入和支出标签,然后点击“显示代码”,它会显示前页的代码!!

所有vba在2007年和2010年都完美无缺,所以我现在非常难过。

过去两周我一直在浏览论坛,试图找到没有成功的解释,有没有其他人经历过这样的事情或知道原因?我重申它在所有其他版本的Excel中都能完美运行....

由于

1 个答案:

答案 0 :(得分:0)

我一直在解决同样的问题。该错误是从模式UserForm打开文件。解决方案是将UserForm打开为无模式。 要么致电:

MyForm.Show False

或将Layout事件过程添加到UserForm:

Private Sub UserForm_Layout()
    Static fSetModal As Boolean
    If fSetModal = False Then
        fSetModal = True
        Me.Hide
        Me.Show 1
    End If
End Sub

阅读:http://msdn.microsoft.com/en-us/library/office/dn251093.aspx