2016-11-09 105 views
0

当我选择在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) 
---- 
---- 

任何人都可以帮助解决该错误?

回答

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)