2017-04-25 21 views
0

我有一個帶有一個命令按鈕的Excel表格,用於添加一個新行,另一個命令按鈕用於刪除所選行。下面是我在命令按鈕中用於刪除行的代碼。此代碼刪除一個選擇行: -刪除第一行以外的選定行

ActiveSheet.Unprotect "xxxx" 
Rows(ActiveCell.Row).Delete 
ActiveSheet.Protect "xxxx", True, True 

但是,如何確保第一行(行K12在我的情況)是不會被刪除,因爲該行擁有所有公式和格式。 另外如何刪除多行。 非常感謝您的協助。

回答

0

也許包裹在:

If ActiveCell.Row > 12 Then 
... 
End If 

我猜,你不會希望被任何刪除上述K12任何行。

+0

謝謝,if語句作品。 –

+0

但是如果我選擇並突出顯示多行,怎麼可能刪除多行。 –

0

爲你試了這個。在這裏,您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 
+0

非常感謝,但我試圖做一些不同的事情。我想通過鼠標拖動手動突出顯示一些行並單擊命令按鈕來刪除選定的行。我以前的代碼僅適用於一行,而不適用於手動多行選擇。 –

+0

@VinzB你可以把'set rng = ...'替換成'='後的內容到'Selection.Address(ReferenceStyle:= xlA1,_ RowAbsolute:= False,ColumnAbsolute:= False)'沒有測試過這個tho – krib

+0

不幸的是它不工作。所以我仍然使用下面的代碼。但是,使用此代碼,我仍然無法使用鼠標拖動來選擇多行,並單擊命令按鈕以刪除選定的行: - If ActiveCell.Row> 12 Then ActiveSheet.Unprotect「xxxx」 Rows(ActiveCell.Row).Delete ActiveSheet.Protect「xxxx」,True,True Endif –