2016-11-09 158 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)