我一直在整理电子表格,并希望包含一个删除行的按钮。工作表顶部有一些单元格与工作表功能不可分割,所以我想阻止用户删除这些单元格。下面是每次单击按钮时我想要实现的示例。
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
我正在努力让这项工作取得成功并取得成功。
答案 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"