如何在Excel 2013中取消保护XLSX文档结构

3
我有一个关于宏的问题,尝试取消冻结窗格失败。文档启用了结构保护:查看 > 保护工作簿 > 结构和窗口保护(适用于2013版本)。
在2013版本之前的Excel中,我的宏没有问题。
Sub Unfreeze()
    ActiveWorkbook.Unprotect
    ActiveWindow.FreezePanes = False
End Sub

但在2013版本中,当执行“ActiveWorkbook.Unprotect”时,没有出现错误,但无法取消文档中的结构更改限制,因为新行“ActiveWindow.FreezePanes = False”会抛出:

错误1004“应用程序定义或对象定义错误”。

此外,在每次打开文档时弹出“启用编辑”按钮后,Ribbon上的FreezePanes按钮仍然被锁定。

Enable Editing button

在点击“启用编辑”按钮后,我进入VBE并执行“ActiveWorkbook.Unprotect”,然后仍然看到文档受到保护:查看>保护工作簿>结构已被选中。因此,我尝试从这个窗口以外的方式去除保护失败了。但是!即使在这个窗口中,我也无法删除保护!当我取消选中“结构”复选框时,[确定]按钮变为不可用!保护没有密码,因为即使我在密码字段中输入一些符号,只要未选中“结构”复选框,我仍然无法按下[确定]按钮。

Unable to unlock

请注意,此问题可以在Excel 2013中重现,如果您能提供如何使用VBA代码解锁文档的建议,将会非常有帮助。 此处可找到文档示例

1
就我个人而言,在一个新的Excel 2013工作簿中,我没有遇到这种情况,但在你的工作簿中却有(即使使用资源管理器解除锁定、右键单击属性后仍然如此)。我唯一能够访问“冻结/取消冻结”命令的方法是将工作表复制到一个新的工作簿中。 - user4039065
2个回答

1
工作簿可能部分解除保护,但仍保留数字签名。

        digital_signature

点击文件-信息-保护工作簿-添加数字签名以获取详细信息。更改或完全删除它可以快速恢复冻结/取消冻结窗格的功能。


谢谢Jeeped的回答!处理数字签名的唯一方法是这样吗?按照您的步骤,我得到了“获取数字ID”弹出窗口,它将我重定向到support.office.com>查找数字ID服务,并且没有其他像您附加的窗口。 - sku144
1
尝试从VBE的立即窗口(Ctrl + G)运行此命令:ActiveWorkbook.Signatures.AddNonVisibleSignature "{00000000-0000-0000-0000-000000000000}" - user4039065
添加或删除Office文件中的数字签名 - user4039065
仍然是相同的 - 弹出消息要求我获取数字 ID :( - sku144

0

使用来自早期版本的Excel文件时,我曾经使用activesheet.unprotect更改E2013中的活动工作表。

也许如果您尝试使用工作簿名称限定unprotect调用,并对freezepanes调用进行相同的操作呢?

我还没有测试过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接