|
▼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
|
|