“直到”循环在“for each”循环结束之前退出macros

对于我的工作表的每一行,我试图浏览单元格。 遇到空单元格时我会停下来。 然后我想去到下一行。

为了做到这一点,我正在使用“IsEmpty”条件的“Do until”循环。 这个“Do until”循环在“For each”循环中。 “For each”循环用于在第一列中从一个范围移动到另一个范围。 从A1到A2,到A3等

我设法成功浏览了第一行。 但我不能设法下到第二行,以及下面的行。 我假设“Do until”循环退出macros而不让Excel读取“Next rng”语句…

我的macros退出,活动单元格是第一行的第一个空单元格。 (我们现在应该去第二排,不要停下来)

这是我的代码:

Sub label_clusters() Dim rng As Range, iCounter As Integer iCounter = 1 For Each rng In Feuil1.Range("A1:A24") If ActiveCell.Column = 1 Then Sheets("Feuil2").Cells(iCounter, 1) = rng.Value Sheets("Feuil2").Cells(iCounter, 2) = rng.Offset(0, 1).Value iCounter = iCounter + 1 ActiveCell.Offset(0, 2).Select End If Do Until IsEmpty(ActiveCell.Value) = True If ActiveCell.Column <> 1 Then Sheets("Feuil2").Cells(iCounter, 1) = rng.Value Sheets("Feuil2").Cells(iCounter, 2) = ActiveCell.Value iCounter = iCounter + 1 ActiveCell.Offset(0, 1).Select End If Loop Next rng End Sub 

我显然做错了什么,但经过一次又一次的search,我现在缺乏想法。 任何的消化会做=)非常感谢您的帮助。

问题在于这一行:

 If ActiveCell.Column = 1 Then 

在完成第一行之后, ActiveCell是第一个空单元格, ActiveCell.Column是> 1.因此, for each循环之后的for each循环,第一个代码块被跳过,并且ActiveCell永远不会更新到下一行的第一个单元格。

看看你的代码, if陈述似乎是多余的。 我认为,如果删除ifend if两行,代码将正确执行。