首页 > 解决方案 > For循环与另一个范围内的单元格范围

问题描述

试图弄清楚下面的代码在做什么,但无法弄清楚:

For Each c In Sheets("Control").Range("y3:y" & Range("y" & 
Rows.Count).End(xlUp).Row).Cells

Sheets("forecast").Range("a5") = c

我认为正在发生的事情:

下面c设置为某个单元格,其中包含一个名称。在每个单元格的上部,在工作表控件中,从y3直到结束的范围,....然后混乱开始。接下来发生什么:

Range(".." & Range(".." & Rows.Count).End(x1Up).Row).Cells

我怎么读这个?

这是来自 Sheets("Control") 的表格:

在此处输入图像描述

标签: vbaexcel

解决方案


Range(".." & Rows.Count).End(x1Up).Row- 你这里有一个错字,它是xlUp( l, 代表柠檬水,而不是1)。使用Option Explicit以避免此类错误!

无论如何,它的意思是这样的:在 column".."中,在你的情况下y,转到底部的最后一行。然后向上,直到遇到第一个非空白单元格并得到它的Row.

因此,如果您在 range 中有值Y1:Y20,那么从底部向上将在第 20 行结束,将您20作为行号。


推荐阅读