在内部选择范围对于每个循环工作正常,但如果在循环外,则给出错误

时间:2016-11-09 13:49:57

标签: excel-vba vba excel

当我在for循环中选择一个范围时,它可以正常工作:

For Each d1 In Range(Range("B2"), Range("B2").End(xlDown))

为了提高代码的性能,我尝试在For Each循环之外选择范围,如下所示。但它给了我错误。

Dim StartCell As Variant
Dim EndCell As Variant

StartCell = Range("B2")
EndCell = Range("B2").End(xlDown)

For Each d1 In Range(StartCell, EndCell)
----
----

任何人都可以帮忙解决错误吗?

1 个答案:

答案 0 :(得分:0)

您的两个变量实际上是范围,因此在分配此类(对象)变量时需要使用Set语句。如果B2下面没有任何内容,那么你的代码将失败。

Dim StartCell As Range
Dim EndCell As Range

Set StartCell = Range("B2")
Set EndCell = Range("B2").End(xlDown)

For Each d1 In Range(StartCell, EndCell)