在"之前设置范围,使用range.delete endwith"失败

时间:2017-09-22 08:22:27

标签: vba excel-vba excel

如果我在With之前设置范围,之后,rng_dest已经丢失了定义的范围。 但是如果我在with之后设置范围,它就可以了。 你知道为什么吗?谢谢!

Set rng_dest = Sheets("AO_Interlocks").Range("A2")
With Sheets("AO_Interlocks")
    Range(.Range("A2"), .UsedRange.Offset(1, 0)).EntireRow.Delete  
End With

1 个答案:

答案 0 :(得分:0)

使用rng_destSet rng_dest = Sheets("AO_Interlocks").Range("A2")分配范围,然后删除Range("A2")时,它也会使rng_dest的引用无效到指定范围。

或者,如果不需要删除范围,您可以使用

Range(.Range("A2"), .UsedRange.Offset(1, 0)).EntireRow.ClearContents

而不是

Range(.Range("A2"), .UsedRange.Offset(1, 0)).EntireRow.Delete
根据您的要求,

甚至Range(.Range("A2"), .UsedRange.Offset(1, 0)).EntireRow.Clear将在评论中按照@Tom的说法运作。