• ベストアンサー

マクロ loop

1枚の年表(日は順に並んでます)から、月別の表を作りたいです(1つのシートに表が12ケ月分) 月が変わったら、次の表にデータを移したいです Do while sheets(1).cell(行,2).value <> "" Do while Month(sheets(1).cells(行,2))=Month(sheets(1).cells(行+1,2))   <年表データを月別に移行> (同じ月の間は同じ表にっていう意味のつもり) 行=行+1 上手くいきません・・・

質問者が選んだベストアンサー

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

コードを提示していただかないと何ともいえませんが やりたいことは 行1 = 2 行2 = 2 Sheets.Add Do While Sheets("sheet1").Cells(行1, 2).Value <> "" Cells(行2, 2).Value = Sheets("sheet1").Cells(行1, 2).Value If Month(Sheets("sheet1").Cells(行1, 2)) <> Month(Sheets("sheet1").Cells(行1 + 1, 2)) Then Sheets.Add 行2 = 2 End If 行2 = 行2 + 1 行1 = 行1 + 1 Loop こんな感じで如何でしょうか?

bogeymoriko
質問者

お礼

すごい☆☆ 私(初心者)でもわかりやすく、すぐ仕事で作ってるものに応用できました 永久ループからも脱出!!!数日の悩みか解放されました ありがとうございました

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

うまくいかないというだけで、どううまくいかないのか書かないと読者にわからないでしょう。 読者には、あなたのパソコンが見えないのですよ。説明に工夫をすること。 短いならコードを貼り付けるのも1方法。 ーー 参考 例 データ 2009/12/1 2009/12/2 2009/12/3 2009/12/4 2009/12/5 2009/12/6 2010/1/3 2010/1/4 2010/1/5 2010/1/6 2010/2/1 2010/2/2 2010/2/3 2010/2/4 ーー 月ごとに別列に振り分け。質問の場合は別シートだが、ロジックは応用できるとおもう。 コード Sub test04() d = Range("B65536").End(xlUp).Row MsgBox d j = 4 'D列 k = 2 '第2行目から書き出し Cells(k, j) = Cells(2, "B"): k = k + 1 m = Month(Cells(2, "B")) For i = 3 To d If Month(Cells(i, "B")) = m Then Cells(k, j) = Cells(i, "B"): k = k + 1 Else j = j + 1: k = 2 Cells(k, j) = Cells(i, "B"): k = k + 1 m = Month(Cells(i, "B")) End If Next i End Sub ーーー D,E,F列 2009/12/1 2010/1/3 2010/2/1 2009/12/2  2010/1/4 2010/2/2 2009/12/3  2010/1/5 2010/2/3 2009/12/4  2010/1/6 2010/2/4 2009/12/5 2009/12/6

bogeymoriko
質問者

お礼

ありがとうございました マクロ以前に マクロを質問する知識も持ち合わせてませんでした 参考マクロありがとうございました

関連するQ&A