• 締切済み

vba  

VBAはじめたばかりで、躓きました。 下記を実行すると、”Nextに対するForがありません。”とでます。 なぜこうなるのか教えてください。  G2~列2000の間が空白になるまで、  下記の処理を続けるようにしたいと思っています。  Dim i As Integer For i = 7 To 2000 Do If Cells(2, i) = "" Then Range("G2").End(xlToRight).Select ActiveCell.CurrentRegion.Resize(6, 5).Select Selection.Cut Range("B2").End(xlDown).Select ActiveCell.Offset(1).Select ActiveSheet.Paste Exit Do End If Next i Loop  よろしくお願いします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

”Nextに対するForがありません。”とでます。 なぜこうなるのか教えてください。 に対する回答は出ていますが、 G2~列2000の間が空白になるまで、  下記の処理を続けるようにしたいと思っています。 は大丈夫? For と Doの二重のループも必要? For i = 7 To 2000 Step 5 If Cells(2, i) = "" Then Exit For Cells(2, i).Select ActiveCell.CurrentRegion.Resize(6, 5).Select Selection.Cut Range("B2").End(xlDown).Select ActiveCell.Offset(1).Select ActiveSheet.Paste Next i Cells(2, i).Select ActiveCell.CurrentRegion.Resize(6, 5).Select Selection.Cut も Cells(2, i).CurrentRegion.Resize(6, 5).Cut と1行にまとめたりも出来ます。

  • koiboshi
  • ベストアンサー率15% (7/45)
回答No.2

Next iとLoopの行順が逆かと思われます。

yasushi0715
質問者

お礼

ありがとうございます

  • bartok88
  • ベストアンサー率6% (16/247)
回答No.1

Next iとLoopの行順が逆じゃないですか?

yasushi0715
質問者

お礼

ありがとうございます。 m(__)m