如何在没有密码的情况下将 Excel 2010 工作表设为只读?

Kno*_*abe 5 microsoft-excel microsoft-excel-2010

我想将 Excel 2010 工作簿中的其中一个工作表设为只读,但我不想使用密码。我只是想这样做,这样我就不会意外编辑工作表,而且我不想处理密码——甚至是空白密码。本质上,我想做与为文件设置只读位相同的事情,但我想为 Excel 2010 工作表执行此操作。

Eng*_*ast 3

你来这里的目标是什么?


提醒自己您不想编辑此工作表

如果为了防止自己意外编辑工作表,一种解决方案是绘制一个覆盖所有数据的巨大矩形,并将其透明度设置为 100%。这将允许您看到所有内容,但阻止您单击任何单元格。但是,仍然可以使用键盘导航和编辑形状下的单元格。这个想法主要用作提醒,因为很容易删除形状并正常使用工作表。它不是很坚固,涂抹起来很烦人,但可以很快去除。


在单击特定按钮之前无法编辑工作表

您已经说过,用空白密码保护工作表不是您想要的方法,但它肯定是最简单的方法。我很好奇你为什么不喜欢它。有一些烦恼,例如打开对话框时必须处理对话框以及尝试编辑单元格时必须处理弹出框。

您可以编写一些 VBA 来自动保护和取消保护使用空白密码的工作表。它很容易使用,但您必须在工具栏上的某个位置放置一个按钮才能调用该宏。当您尝试编辑单元格时,弹出框仍然会出现。IE,它并不能节省你太多时间。不过,我建议您在保护它时不要选中所有复选框,因为这样做将允许您添加/删除行和列 - 除其他事项外 - 您可能不想这样做。

编辑:(根据OP的评论)

这是切换工作表保护的 VBA。您可以使用它来制作一个打开和关闭它的按钮。本文可以提供有关如何将自定义宏添加到功能区或快速访问工具栏的所有详细信息。简而言之:右键单击功能区上的空白区域,然后单击“自定义快速访问工具栏”或“自定义功能区”以打开一个新窗口。将左上角标记为“从以下位置选择命令:”的下拉菜单设置为“宏”,然后在列表中找到宏。添加后,您可以编辑图标和名称。

Sub ToggleSheetProtection()
    'Enables / Disables sheet protection with a blank password
    'When disabling protection, it will prompt for a password only if it isn't blank
    With ActiveSheet
        If .ProtectContents Then .Unprotect Else .Protect "", True, True, True, True
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

关键点:

  1. 正如所写,它仅锁定用户界面。这意味着 VBA 仍然可以编辑工作表。要改变这一点,请删除True后面的最后一个.Protect。(事实上​​,由于默认值,您可以在 后删除该行上的所有内容.Protect。)
  2. 当您尝试编辑内容时,您仍然会看到弹出窗口。