删除解锁 rows/columns in userinterfaceonly:=true 模式

Delete unlocked rows/columns in unserinterfaceonly:=true mode

我用以下子程序保护某些单元格:

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

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

例如我尝试删除第 22 行,但这是不可能的。我想因为我只是锁定单元格到第 8 行,所以我可以删除其他单元格。

有办法实现吗?

当您对 Sheet 设置保护时,您需要指定您允许的人的权利:

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

所以你应该在解锁单元格和锁定范围之前保护整个sheet时添加AllowDeletingRows:=True