0

出于某种原因,跟随循环跳过了我要将数据复制到的第二个单元格。变量 cw 只是与数据相关的日历周的数字。X 代表工作表 ws 中已有的数据,Y 代表日历周之前放入工作表的数据。“C”表示日历周变量复制到第二列时发生的情况,“a”是我用于偏移的点,M 表示与日历周对应的月份,但我还没有实现宏的一部分来做到这一点。因此,出于某种原因,即使我将偏移变量“i”增加 1,它也会跳过第二行并将 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
4

1 回答 1

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
于 2013-10-25T12:54:35.700 回答