以unserinterfaceonly删除未locking的行/列:= true模式

我用下面的子保护某些单元格:

Sub test() ThisWorkbook.Worksheets(1).Cells.Locked = False ThisWorkbook.Worksheets(1).Range("C3:E8").Locked = True Worksheets(1).Protect userinterfaceonly:=True End Sub 

我的问题是, 为什么不能删除在locking= False范围的界面中的行

例如,我尝试删除第22行,但这是不可能的。 我以为我把单元格locking到第8行,我可以删除其他单元。

有没有办法做到这一点?

当您在工作表上设置保护时,您需要指定您允许的权限:

 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowDeletingColumns:=True, AllowDeletingRows:=True 

因此,在解锁单元格和locking范围之前保护整个工作表时,应添加AllowDeletingRows:=True