2012-01-09 6 views
0

私はこの仕事を何とかすることができますが、何時間もそれを把握しようとしています。さまざまな量のセルインクリメントの範囲を持っています。VBA

私はループ内でオフセットを使用しようとしましたが、動作しませんでした たとえば、x = x.Offset(10,0)とi = i.Offset(5,0)などを使用しました。

Sub Macro5() 

    Dim i As Range, j As Range, k As Range 
    Dim x As Range, y As Range 
    Dim Num As Integer 

    Num = 94 

    Set x = Sheets("Sum Data").Range("B1:G10") 
    Set j = Sheets("PNA Physical Needs Summary Data").Range("C4:L9") 
    Set i = Sheets("PNA Physical Needs Summary Data").Range("B4:B9") 
    Set k = Sheets("Sum Data").Range("A1") 
    Set p = Sheets("PNA Physical Needs Summary Data").Range("P3:P8") 
    Set e = Sheets("PNA Physical Needs Summary Data").Range("A4:A9") 

    Do 
     x.Copy 
     j.Select 
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
     False, Transpose:=True 

     p.Copy i 

     k.Copy e 

     Num = Num - 1 

    Loop Until Num = 0 
End Sub 
+2

元の質問のコメントをチェックしてください。すぐに新しい質問を開始しないことをお勧めします。 –

+0

[VBAはループ内で増分するにはどうすればよいですか?](http://stackoverflow.com/質問/ 8793782/vba-whats-the-best-way-to-loop) – brettdj

答えて

0

私はあなたが何をしようとしているのか分かりませんが、現在のルーチンはある一連の範囲から別の範囲のデータを正常にコピーします。

xとiを更新するステートメントからセットを省略しましたか?次はあなたがSetの省略があなたの問題ではありません場合は、あなたの完全なコードとあなたが経験する障害の内容が含まれるようにあなたの質問を拡張してください

Set x = x.Offset(10,0) 
Set i = i.Offset(5,0) 

を期待通りに動作するように見えます。

関連する問題