2017-07-30 45 views
0

我一直在组装一个电子表格并希望包含一个按钮来删除行。在工作表顶部有一些单元格,它们是表单功能的组成部分,所以我想阻止用户也能够删除这些单元格。以下是我试图通过单击按钮实现的示例。使用按钮删除行但不在某些行上

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

请描述你希望如何被使用的按钮 – jsotola

回答

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并退出,如果属实。

+0

谢谢,这个完美工作为了我想达到的目标,非常感谢。 – 85l00k85

0

尝试根据您的样品下面的代码(不要删除行时ActiveCell为“B21”。

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"