使用VBA

时间:2016-03-04 14:02:21

标签: excel vba macros protected protection

我有一张模板表,可以通过VBA复制到新表中。此新工作表用作表单,供用户填写并包含锁定的标题单元格以及解锁的空单元格,供用户输入信息。工作表受到保护,但允许用户选择锁定和未锁定的单元格。通过单击弹出用户表单的按钮添加新工作表,并将用户表单中的信息传输到新工作表。

一切都运作良好几个月,直到前几天我注意到一个奇怪的错误:当创建一个新工作表并且用户试图在未锁定的单元格中填写信息时,Excel会像锁定一样响应!即弹出以下信息:“您尝试更改的单元格或图表位于受保护的工作表上。要进行更改,请单击”审阅“选项卡中的”取消保护工作表“(可能需要密码)。此错误只是暂时的,并且在用户执行以下任何操作后消失1)双击任何空单元格(而不是仅选择它)并以这种方式输入信息然后单击回车,然后所有单元格都正常运行,2)激活任何其他工作表,然后再次返回此工作表,或3)选择格式>取消保护工作表(这实际上不会取消保护工作表,但它会删除错误。如果用户想要取消保护工作表,那么他们必须单击格式>取消保护工作表两次,即首先删除这个奇怪的错误,然后实际取消保护它。)

我正在尝试用VBA通过上面的1,2或3中的任何一个来消除这个令人不安的错误 - 但没有任何作用。任何人都有任何想法如何解决这个问题?

编辑: 另一个问题是,在出现问题时无法在工作表中滚动鼠标。

我试图插入以下代码,但它没有帮助:

ActiveSheet.EnableOutlining = True 
ActiveSheet.Protect Contents:=True, userInterfaceOnly:=True

1 个答案:

答案 0 :(得分:0)

经过一些谷歌搜索后,我设法通过以下方式解决了这个问题:

在VBA中创建一个模块并添加以下代码:

Public Sub RefreshActiveCellSelection()
   ActiveCell.Select
End Sub

每当您执行Workbook.Activate或Worksheet.Activate时,请立即致电

Application.OnTime Now, "RefreshActiveCellSelection"

另一个解决方案是卸载KB3085502

我在这里找到答案:http://answers.microsoft.com/en-us/office/forum/office_2013_release-office_install/microsoft-update-excel-2013-kb3085502-32-bit/0cc7d498-92cb-4478-9554-77cff286c847

相关问题