【发布时间】:2017-09-11 02:13:02
【问题描述】:
我试图理解为什么这个错误之前没有弹出
Sub deleterow()
Dim cell As Range, DelRange As Range
For Each cell In ActiveSheet.Range("A2:G2000")
If cell.Interior.ColorIndex = 6 Then
If DelRange Is Nothing Then
Set DelRange = cell
Else
Set DelRange = Union(DelRange, cell)
End If
End If
Next cell
If Not DelRange Is Nothing Then DelRange.EntireRow.Delete ' error here
End Sub
这是记录的 VBA 宏的一部分,用于删除突出显示的行,但它在 DelRange.EntireRow.Delete 行中显示错误运行时错误“1004”-“无法在重叠选择上使用该命令”。
以前没有发生过。
提前致谢
【问题讨论】:
-
您收到此错误,因为在某些行中您有 2 个带有 Yellow 内部的单元格,因此您在同一行中添加了 2 个单元格到您的 @ 987654322@,然后尝试将同一行删除两次。即假设“C3”和“G3”都是黄色的,您将它们都添加到
DelRange,当您尝试删除DelRange.EntireRow.Delete时,您尝试删除第3行两次 - 从而导致运行-时间错误。 -
我发现问题出在其中一个没有突出显示的列上,它应该以突出显示的行可能是一个接一个的方式运行。感谢回复:)
-
一个接一个可以工作,但是使用您的代码,您不能在同一行中有 2 个单元格。除非你稍微改变一下代码的概念
-
您能进一步解释一下吗?我不太明白您所说的同一行中的 2 个单元格是什么意思。我相信我正在捕获整个范围内的行(“A2:F2000”)并找到要删除的突出显示的行
-
我很抱歉 YowE3K