|
▼β さん:
すごい…違うケースも想定してのコード作成を…
感動で胸が一杯です…
こちらでも私の思い描いた形になりました!
私のようなマクロを理解していない者にも
暖かく対応していただき、ありがとうございました!
>▼藁にもすがりたい者 さん:
>
>元シート(コードでは "Sheet1") の店名ですが、
>必ずしも、まとまって(固まって)出現しないというケースも想定しますと
>以下にしておいたほうが安全ですね。
>
>Sub Test2()
> Dim r As Range
> Dim a As Range
> Dim d As Range
> Dim i As Long
> Dim dic As Object
> Dim nm As String
> Dim pos As Range
>
> Set dic = CreateObject("Scripting.Dictionary")
>
> With Sheets("Sheet1")
> Set r = .Range("B6", .Range("B" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers)
>
> For Each a In r.Areas
> Set d = a.Offset(-1).Resize(a.Rows.Count + 1)
> nm = d(1).Value '店名
> If Not dic.exists(nm) Then '初めて出現?
> dic(nm) = True
> If Not IsObject(Evaluate(nm & "!A1")) Then 'シート無し?
> Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = nm
> End If
> With Sheets(nm)
> .Cells.ClearContents
> Set pos = .Range("A1")
> End With
> Else
> Set pos = Sheets(nm).Range("A" & Rows.Count).End(xlUp).Offset(1)
> End If
> d.EntireRow.Copy pos
> Next
>
> End With
>End Sub
|
|