|    | 
     ▼bofbof さん: 
 
元シートのD列を作業列に使います。 
また、転記するシートはシート名が日付になります。(あれば、それを使いますし、なければ作成します) 
転記レイアウトは、ご希望のものと少し違いますが、試してみてください。 
機能としてはフィルターオプションを使っています。 
 
Sub Sample() 
  Dim c As Range 
  Dim shnm As String 
  Dim sh As Worksheet 
   
  Application.ScreenUpdating = False 
   
  With Sheets("Sheet1")  '元シート名は実際のものに 
    .Columns("D").ClearContents 
    .Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("D1"), Unique:=True 
    For Each c In .Range("D2", .Range("D" & .Rows.Count).End(xlUp)) 
      shnm = Format(c.Value, "yyyy""年""mm""月""dd""日""") 
      If IsObject(Evaluate("'" & shnm & "'!A1")) Then 
        Set sh = Sheets(shnm) 
        sh.Cells.ClearContents 
      Else 
        Sheets.Add 
        Set sh = ActiveSheet 
        sh.Name = shnm 
      End If 
       
      sh.Range("A1") = .Range("A1").Value 
      sh.Range("A2").Value = c.Value 
      sh.Range("B1").Value = .Range("B1").Value 
      .Columns("A:B").AdvancedFilter Action:=xlFilterCopy, _ 
        CriteriaRange:=sh.Range("A1:A2"), CopyToRange:=sh.Range("B1"), Unique:=False 
    Next 
    .Columns("D").ClearContents 
  End With 
   
  Application.ScreenUpdating = True 
  MsgBox "処理が終了しました" 
   
End Sub 
 | 
     
    
   |