删除第一行以外的选定行
我有一个带有一个命令按钮的Excel表格,用于添加一个新行,另一个命令按钮用于删除所选行。下面是我在命令按钮中用于删除行的代码。此代码删除一个选择行: -删除第一行以外的选定行
ActiveSheet.Unprotect "xxxx"
Rows(ActiveCell.Row).Delete
ActiveSheet.Protect "xxxx", True, True
但是,如何确保第一行(行K12在我的情况)是不会被删除,因为该行拥有所有公式和格式。 另外如何删除多行。 非常感谢您的协助。
也许包裹在:
If ActiveCell.Row > 12 Then
...
End If
我猜,你不会希望被任何删除上述K12任何行。
为你试了这个。在这里,您selsct多个单元
Sub test()
ActiveSheet.Unprotect "xxxx"
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox("select you range (use ctrl to Select non adjacen cells):", "multiple rows to delete", ActiveSheet.UsedRange.AddressLocal, , , , , 8)
If rng Is Nothing Then Exit Sub
If ActiveCell.Row > 12 Then
rng.EntireRow.Delete
Else
MsgBox "do not select from row 12 or above"
End If
ActiveSheet.Protect"xxxx", True,True
End Sub
非常感谢,但我试图做一些不同的事情。我想通过鼠标拖动手动突出显示一些行并单击命令按钮来删除选定的行。我以前的代码仅适用于一行,而不适用于手动多行选择。 –
@VinzB你可以把'set rng = ...'替换成'='后的内容到'Selection.Address(ReferenceStyle:= xlA1,_ RowAbsolute:= False,ColumnAbsolute:= False)'没有测试过这个tho – krib
不幸的是它不工作。所以我仍然使用下面的代码。但是,使用此代码,我仍然无法使用鼠标拖动来选择多行,并单击命令按钮以删除选定的行: - If ActiveCell.Row> 12 Then ActiveSheet.Unprotect“xxxx” Rows(ActiveCell.Row).Delete ActiveSheet.Protect“xxxx”,True,True Endif –
谢谢,if语句作品。 –
但是如果我选择并突出显示多行,怎么可能删除多行。 –