使用按钮删除行但不删除某些行

时间:2017-07-30 18:39:23

标签: excel vba excel-vba

我一直在整理电子表格,并希望包含一个删除行的按钮。工作表顶部有一些单元格与工作表功能不可分割,所以我想阻止用户删除这些单元格。下面是每次单击按钮时我想要实现的示例。

ActiveSheet.Unprotect Password:="password"
If ActiveCell = Range("B21") Then Exit Sub Else
Selection.EntireRow.Activate
Selection.Delete Shift:=xlUp
ActiveSheet.Protect Password:="password"
End Sub

我正在努力让这项工作取得成功并取得成功。

2 个答案:

答案 0 :(得分:1)

如果您只是想阻止第10行上方的任何行被删除,那么:

If ActiveCell.Row < 10 Then Exit Sub
ActiveSheet.Unprotect Password:="password"
Selection.EntireRow.Delete Shift:=xlUp
ActiveSheet.Protect Password:="password"

但是,这并不能解释用户选择多行的问题,因此您还需要考虑这一点。您也可以检查Selection.Rows.Count > 1并退出,如果为真。

答案 1 :(得分:0)

根据您的示例尝试以下代码(ActiveCell在&#34; B21&#34;

时不删除行
ActiveSheet.Unprotect Password:="password"

If Intersect(ActiveCell, Range("B21")) Is Nothing Then
    ' delete the entire row (no need to use select)
    ActiveCell.EntireRow.Delete Shift:=xlUp
End If
ActiveSheet.Protect Password:="password"