| 
    
     |  | ▼ありす さん: 
 修正してみました。
 
 > なぜか、データの項目名から取ってきてしまう場合が5回に1回くらい起こって>しまった。→未解決
 
 >Sheet1.Range("C6:K" & Cells(Rows.Count, "E").End(xlUp).Row).Copy
 
 Cells(Rows.Count, "E")の前にも、シート指定が必要です。
 
 
 Sub tenki2()
 Dim k As Long, g As Long 'k=期間 g=繰り返し用
 Dim MaxRow1 As Long, MaxRow2 As Long
 Dim kaishi As Date '開始日
 Dim shuryo As Date '終了日
 Dim h As Date '日付入力用
 
 '変数"k"に期間(何か月)をセット
 k = Sheet1.Range("B5")
 kaishi = Sheet1.Range("B6")
 
 For g = 1 To k
 'sheet1のデータをsheet2に貼り付け
 If Sheet2.Range("C6") = "" Then
 MaxRow1 = Sheet2.Cells(Rows.Count, "C").End(xlUp).Row + 1
 Sheet1.Range("C6:K" & Sheet1.Cells(Rows.Count, "E").End(xlUp).Row).Copy
 Sheet2.Range("C6").PasteSpecial
 MaxRow2 = Sheet2.Cells(Rows.Count, "C").End(xlUp).Row
 Else
 MaxRow1 = Sheet2.Cells(Rows.Count, "C").End(xlUp).Row + 1
 Sheet1.Range("C6:K" & Sheet1.Cells(Rows.Count, "E").End(xlUp).Row).Copy
 Sheet2.Range("C" & MaxRow1).PasteSpecial
 MaxRow2 = Sheet2.Cells(Rows.Count, "C").End(xlUp).Row
 End If
 '日付の入力
 h = DateSerial(Year(kaishi), Month(kaishi) + g, 0)
 Sheet2.Range("D" & MaxRow1 & ":D" & MaxRow2).Value = h
 Next
 '並べ替え
 With Sheet2.Sort
 .SortFields.Clear
 .SortFields.Add Key:=Sheet2.Range("C6")
 .SortFields.Add Key:=Sheet2.Range("D6")
 .SetRange Sheet2.Range("C5:K" & MaxRow2)
 .Header = xlYes
 .Apply
 End With
 
 End Sub
 
 
 |  |