Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 删除受保护工作表上的行_Excel_Vba - Fatal编程技术网

Excel 删除受保护工作表上的行

Excel 删除受保护工作表上的行,excel,vba,Excel,Vba,我有一个受保护的工作表;除用户要编辑的单元格外,所有单元格都被锁定。我希望用户能够删除行,因此我在保护我的工作表时启用了“删除行”。正如预期的那样,我收到错误消息“您正在尝试删除包含锁定单元格的行…”我理解为什么会发生这种情况,因为我预期用户输入区域之外的所有单元格都被锁定 我不想解锁所有其他单元格,因为我不希望用户在其中输入数据 我曾研究过在“删除行”事件中取消工作表保护的功能,但未能找到此类事件。我想我可以在每一行旁边添加一个按钮,取消对工作表的保护,删除该行并重新保护工作表,但希望得到更优

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

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

我曾研究过在“删除行”事件中取消工作表保护的功能,但未能找到此类事件。我想我可以在每一行旁边添加一个按钮,取消对工作表的保护,删除该行并重新保护工作表,但希望得到更优雅/更简单的解决方案


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

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

Protect UserInterfaceOnly:=True

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

您可以使用一个按钮调用VBA函数来执行删除操作。和使用

Protect UserInterfaceOnly:=True

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

您通常可以通过以下代码实现这一点:

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

您通常可以通过以下代码实现这一点:

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

您可以为此编写脚本。。。插入一个删除选定行的按钮,代码将取消对工作表的保护,删除行并再次保护工作表。您可以为此编写脚本。。。插入删除选定行的按钮,代码将取消对工作表的保护,删除行并再次保护工作表。