Excel VBAselect2不连贯的单元格并删除行

在受保护的工作表中,我有一个button,可以删除所选单元格的行,而它们是连续的行。 如果我select两个单元格在不同的行(与CTRL),这是不连贯的行我得到一个1004错误。 见下面的代码:

Sub LöscheDatensatz() Application.ScreenUpdating = False With ActiveSheet .unprotect Password:="test" If Cells(Selection.Row, 1).Locked = False Then Selection.EntireRow.Delete End If .Protect Password:="test", AllowFiltering:=True End With Application.ScreenUpdating = True End Sub 

if命令可防止删除受保护的行。 该错误只出现在未受保护的单元格中。

代码中有什么错误? 谢谢=)

当你保护工作表时,如果你想删除行,甚至是解锁行,你需要明确地允许用户删除行[1]。 检查您手动保护表格中的正确方框,或使用如下代码:

 ActiveSheet.Protect Password:="test", AllowFiltering:=True, AllowDeletingRows:=True 

[1]顺便说一句,即使AllowDeletingRows为True,您将无法删除具有受保护单元格的行。

编辑:

testing1:新的工作簿,一张。

  • 解锁行1和3(select两行,编辑格式单元格,取消选中locking)
  • 保护工作表,不允许删除行
  • 运行在立即窗口[A1] .EntireRow.Delete – >错误1004引发
  • 运行在立即窗口[A1,E3] .EntireRow.Delete – >错误1004引发

testing2:新的工作簿,一张。

  • 解锁行1和3(select两行,编辑格式单元格,取消选中locking)
  • 保护允许删除行的工作表
  • 在即时窗口运行[A1,E3] .EntireRow.Delete – >没有错误

你的代码工作正常。 只要确保你所删除的所有单元格都没有被locking。 因为根据你的代码。 如果先select不受保护的单元,然后select受保护的单元。 它会删除这两行,而不pipe第二个选中的单元格是否被保护(locking)。

以下是供参考的图片。

在这里输入图像说明