Workbook Protection不受密码保护(VBA Excel 2010)

问题描述 投票:2回答:1

我用各种关键字搜索了上述问题,但是所有结果要么与如何保护工作簿有关,要么与不知道密码的情况解除保护有关。

我当前的问题并不是什么大问题,但是感觉很奇怪,我想知道其他人是否曾经/正在经历它。

我目前正在制作Excel 2010 VBA宏来自动化数据处理。我要添加工作簿保护,以便用户不能移动工作表的位置。我已经通过VBA'thisworkbook.protect'或通过传统的Excel菜单完成了此操作。

当我运行以下代码时,无论密码,结构/窗口设置如何,工作簿保护都完全消失。

Sub test()
        ThisWorkbook.Worksheets(1).Cells(1, 1).Value(11) = ThisWorkbook.Worksheets(3).Cells(1, 1).Value(11)
End Sub

只需在代码末尾添加'thisworkbook.protect'即可重新锁定工作簿并解决问题,这就是为什么这不是大问题。但是这种现象对我来说是完全不可理解的。

我感谢任何能提供反馈的人。谢谢。

excel vba protection
1个回答
0
投票

由于这是一个经常出现的问题,所以我想将我的评论转为答案。

Workbook.Protect方法可保护工作簿免受用户交互-与工作簿有关的整体操作(例如,添加/删除/移动工作表)是从用户界面发送的,而不是从代码发送的。为了保护床单您必须使用可以正常工作的Worksheet.Protect方法用于代码引发的更改。

[MS Office支持文章中的herehere中研究了Excel中的保护和安全性,对此进行了研究。您要注意的是第二个Notes块中的第一个链接:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.