当我在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 :(得分: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)