对于每个循环,跳过一个Cell VBA

时间:2013-10-25 12:38:00

标签: vba excel-vba for-loop excel

由于某种原因,跟随循环会跳过我要复制数据的第二个单元格。变量cw只是数据相关的日历周的数字。 X表示工作表中的数据,而Y表示在日历周之前放入工作表的数据。 " C"表示将日历周变量复制到第二列并且" a"是我用于偏移的点,而M代表与日历周相对应的月份,但我还没有实现宏的一部分来做到这一点。所以出于某种原因,即使我正在递增我的偏移变量" i"一个人跳过第二排并将其余的C向下移动。为什么会跳过那个单元格,有什么建议可以解决这个问题?除了第二个列之外,列中没有其他跳过的单元格。

r1 =我从另一个工作表中复制的范围 B7 =" a"在下图中我想要复制到的目的地

xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xaxxxxxxxx
mcyyyyyyyy
m yyyyyyyy
mcyyyyyyyy
mcyyyyyyyy
mcyyyyyyyy
mcyyyyyyyy
 c

Dim r As Range
Dim i As Integer
i = 1
Dim er As Range
Dim cw As Integer
cw = 42

For Each r In r1
   Set er = ws.Range("B7").End(xlDown).Offset(i, 0)
   er.Value = cw
   i = i + 1
Next r

1 个答案:

答案 0 :(得分:0)

我想你第一次做

Set er = ws.Range("B7").End(xlDown).Offset(i, 0)

er成为标有a

的单元格

但第二次End(xlDown)继续在之前创建的c

正确的代码应该是:

Dim rngStart As Range
Set rngStart = ws.Range("B7").End(xlDown)

For Each r In r1
   Set er = rngStart.Offset(i, 0)
   er.Value = cw
   i = i + 1
Next r