删除受保护工作表上的行

时间:2019-03-11 16:26:13

标签: excel vba

我有一个受保护的工作表;除了要由用户编辑的单元格之外,所有单元格都被锁定。我希望用户能够删除行,因此在保护工作表时启用了“删除行”。如预期的那样,我收到错误消息“您正试图删除包含锁定单元格的行...”,我理解为什么会发生这种情况,因为我希望用户输入区域之外的所有单元格都被锁定。

我不想解锁所有其他单元,因为我不想用户在其中输入数据。

我研究了在“删除行”事件中取消保护工作表的能力,但找不到此类事件。我想我可以在每行旁边添加一个按钮,以取消保护工作表,删除该行并重新保护工作表,但是希望有一个更优雅/更轻松的解决方案。

当表格右边的列中有锁定的单元格时,如何删除受保护工作表中的行?

2 个答案:

答案 0 :(得分:2)

您可以有一个按钮,该按钮调用执行删除操作的VBA函数。并使用

Protect UserInterfaceOnly:=True

在保护工作表时。通过这种方式,您可以通过受保护工作表上的VBA删除行并执行其他操作。

答案 1 :(得分:0)

您通常可以通过以下代码来实现:

Public Sub ProtectMySheet()
    Sheet1.Protect UserInterfaceOnly:=True
End Sub

但是,我发现有时会碰到或错过。所以我有时会这样做

Public Sub EditStuffInProtectedSheet()

    With Sheet1

        .Unprotect MYPASSWORD ' You can store your password in a safe location, or make it a constant (if you're okay with your End Users knowing it)
        ' ***Do Stuff***
        .Protect MYPASSWORD

    End With

End Sub