Excel:允许用户删除包含受保护单元格的行 - 崩溃

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

我添加了这个VBA做我的文档。但代码不断崩溃:

ActiveSheet.Protect

我不知道从哪里开始?1

Excel: allow user to delete a row containing protected cells

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address Like "$" & Target.Row & ":$" & Target.Row Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect
End If
End Sub

更新:每当我连续两次选择受保护的单元格时,就会发生错误。

excel vba excel-vba
1个回答
1
投票

我的代码片段没有任何问题,但您只能在不受保护的情况下保护工作表:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address Like "$" & Target.Row & ":$" & Target.Row Then
        ActiveSheet.Unprotect
    Else
        If Not ActiveSheet.ProtectContents Then
            ActiveSheet.Protect
        End If
    End If
End Sub

这只是将protect语句包装在if语句中,该语句在尝试保护工作表之前检查工作表是否未受到保护。

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