【发布时间】:2020-10-30 14:45:07
【问题描述】:
我想在 Excel (A50:B80) 中选择一个范围并删除其所有内容。我将保留两行,然后我希望下一个循环迭代从 (A52:B82) 开始,依此类推。这是我目前所拥有的:
Sub Macro2()
Dim i As Integer
Dim num As Integer
num = 50
Dim num_2 As Integer
num_2 = 80
For i = 1 To 2:
Set Range1 = Range("A" & num)
Set Range2 = Range("B" & num_2)
Range(Range1, Range2).Select
Selection.delete Shift:=x1Up
num = num + 2
num_2 = num + 2
Next i
End Sub
但我不断收到“运行时错误 '1004:Range 类的删除方法失败。
任何帮助将不胜感激!
【问题讨论】:
-
不要那样做。使用
Union构造一个要删除的范围,然后一步删除.. 就像演示的here。 -
你必须将循环向后运行,或者将所有要删除的范围放在一个联合范围中,最后将其删除。这样,它删除了第一个范围,然后它失去了引用,因为之前的删除......
-
@FaneDuru 我明白你在暗示什么,但在我第一次删除初始范围后,将保留 2 行。因此,如果循环再次从第一个范围集开始,它将删除我想要保留的两行。或者我误解了你的意思