在循环内的循环内循环

我正在尝试运行一个批处理。 我需要将一张纸上的某些列复制并粘贴到新创build的纸张上。 这应该包括名称,电子邮件等。为了做到这一点,我做了一个嵌套循环,但是我不能阻止输出行在数据开始重复之后递增。 它一直沿着页面继续。 我的代码如下:

'收集资料

For r = 1 To ActiveCell.End(xlDown).Row Cells(1, c).Select Do Until IsEmpty(Selection) name = ActiveCell.End(xlToLeft).Value email = ActiveCell.End(xlToLeft).Offset(0, 1).Value phoneNumber = ActiveCell.End(xlToLeft).Offset(0, 2).Value generation = ActiveCell.End(xlToLeft).Offset(0, 3).Value status = ActiveCell.End(xlToLeft).Offset(0, 13).Value 'paste data Sheets("Compiled Data").Select Cells(oRow, c) = name Cells(oRow, c + 1) = email Cells(oRow, c + 2) = phoneNumber Cells(oRow, c + 3) = generation Cells(oRow, c + 4) = status oRow = oRow + 1 Loop 

正如你所看到的,我已经有两个循环运行。 我想知道是否需要第三个停止输出(oRow),如果甚至有可能在一个循环内循环内有一个循环。

谢谢。

 Cells(1, c).Select 

这总是select第1行。我不认为这就是你想要的。 而且在纸张之间切换也是非常不利的。 你有

 Sheets("Compiled Data").Select 

但是你永远不会切换回第一张纸。

这应该运行更顺畅

 c_old = 1 'Your "Name" column in original c_new = 1 'Your "Name" column in Compiled Data For r = 1 To ActiveSheet.Cells(Rows.Count, c_old).End(xlUp).Row For j = 0 To 3 Sheets("Compiled Data").Cells(r, c_new + j) = Cells(r, c_old + j) Next j Sheets("Compiled Data").Cells(r, c_new + 4) = Cells(r, c_old + 13) Next r