Excel VBA选择2不相干的单元格并删除行

时间:2016-10-10 12:03:08

标签: excel vba excel-vba

在受保护的工作表中,我有一个按钮,用于删除所选单元格的行,而它们是连贯的行。如果我选择不同行中的两个单元格(使用CTRL),这些单元格不是连贯的行,则会得到1004错误。请参阅以下代码:

git config --get remote.origin.fetch

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

代码有什么问题?谢谢=)

2 个答案:

答案 0 :(得分:1)

您的代码运行正常。 只需确保您要删除的所有单元格都未锁定。 因为根据你的代码。如果先选择非受保护的单元格,然后选择受保护的单元它将删除该行,而不管第二个选定的单元格是否受到保护(锁定)。

以下是供参考的图片。

enter image description here

答案 1 :(得分:1)

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

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

[1] btw,即使AllowDeletingRows为True,您也无法删除带有受保护单元格的行。

编辑:

测试1:新工作簿,一张。

  • 解锁第1行和第3行(选择两行,编辑格式单元格,取消选中已锁定)
  • 保护工作表而不允许删除行
  • 立即运行[A1] .EntireRow.Delete - >错误1004提出
  • 在即时窗口中运行[A1,E3] .EntireRow.Delete - >错误1004提出

测试2:新工作簿,一张。

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