2016-12-20 11 views
1

行を100行ごとにプルし、アクティブブックに貼り付けようとしています。私は理解できない何らかの理由で、コピーがうまくいくように見えますが、ペーストはRange(E2:V2)にペーストする必要があり、E3:V3に貼り付けられ、毎回通過しますforループは別の行をスキップします。したがって、E2:V2に貼り付ける代わりに、E3:V3、次にE5:V5になります。vba forループは、間に空白行を含む行を貼り付けます。

AwbRownum = 2   
     For Rownum = 2 To wb.Sheets("Export").Range("A" & lastRowwb) Step 100 
      Debug.Print "Rownum: " & Rownum 
      buffer = wb.Sheets("Export").Range("A" & Rownum, "R" & Rownum).Value 
      Awb.Sheets("Sheet1").Range("E" & AwbRownum, "V" & AwbRownum).Rows(AwbRownum).Value = buffer 
      Debug.Print "AwbRownum = " & AwbRownum 

      AwbRownum = AwbRownum + 1 

     Next Rownum 
+0

私はそれがあなたの最後の行を各ブックに見つけ、あなたの 'Rownum'と' Rownum'をどのように設定するのかと関係していると思います。残りのコードを投稿できますか? (該当する部分) –

+0

この 'wb.Sheets(" Export ")。Range(" A "&lastRowwb)'は、行Aの値がrow = lastrowwbのところで返されます。 'lastRowwb'を使いたいと思っています:' Rownum = 2の場合はlastRowwbのステップ100へ ' –

+0

Scott Cranerさん、ありがとうございました。 –

答えて

0

あなたはAwb.Sheets("Sheet1")範囲にbuffer配列を置くしようとしているので、あなたが最後にRows(AwbRownum)を必要としません。あなたが書くとき

Awb.Sheets("Sheet1").Range("E" & AwbRownum, "V" & AwbRownum).Value = buffer 
+0

ええ、私もちょっと気付いた! –

+0

あなたは大歓迎です:) –

0

Awb.Sheets("Sheet1").Range("E" & AwbRownum, "V" & AwbRownum).Rows(AwbRownum).Value = buffer 

へ:

はちょうどあなたの行を変更

Awb.Sheets("Sheet1").Range("E" & AwbRownum, "V" & AwbRownum).Rows(AwbRownum).Value = buffer 

.Rows(AwbRownum)Awb.Sheets("Sheet1").Range("E" & AwbRownum, "V" & AwbRownum)で定義された範囲のオフセットです。

関連する問題