プロが教える店舗&オフィスのセキュリティ対策術

初心者です。
会社で先輩に、エクセルにて、
シート1に、たくさん入っているデータを、自動で月ごとに、シート2、3、4、、、と振り分けるものを作って欲しいと依頼されました。
シート234、、には1月、2月、3月、、と月ごとわけてほしいとのこと。

調べたのですがわからず、お知恵かしていただけないでしょうか。

シート1には、A〜Hまで、名前、品名、、など情報がならび、F列に日にちが2017/6/7のような形式で入力してあります。

よろしくお願い致します。

質問者からの補足コメント

  • それ提案したんですけど、自動で、シートの月ごとにわける、が希望のようでして、、(泣)

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/06/19 19:01

A 回答 (2件)

こんばんは!



一例です。
標準モジュールにしてください。

Sub Sample1()
Dim i As Long, k As Long, lastRow As Long, wS As Worksheet
Dim sN As String, myFlg As Boolean
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("I:I").Insert
Range(.Cells(2, "I"), .Cells(lastRow, "I")).Formula = "=MONTH(F2)"
For i = 1 To 12
sN = i & "月"
For k = 2 To Worksheets.Count
If Worksheets(k).Name = sN Then
myFlg = True
Exit For
End If
Next k
If myFlg = False Then
Worksheets.Add after:=Worksheets(i)
ActiveSheet.Name = sN
End If
Set wS = Worksheets(sN)
wS.Cells.Clear
.Range("A1").AutoFilter field:=9, Criteria1:=i
Range(.Cells(1, "A"), .Cells(lastRow, "H")).SpecialCells(xlCellTypeVisible).Copy wS.Range("A1")
wS.Columns.AutoFit
wS.Move after:=Worksheets(i)
myFlg = False
Next i
.AutoFilterMode = False
.Range("I:I").Delete
End With
MsgBox "完了"
End Sub

※ 月だけの検索にしていますので、
複数年のデータがある場合、年に関係なく各月のデータが表示されます。m(_ _)m
    • good
    • 1
この回答へのお礼

助かりました

すごいです!
早急なご回答ほんとうにありがとうございます!!!
明日さっそくやってみます!
ほんとうにありがとうございました!

お礼日時:2017/06/19 20:10

オートフィルターで抽出すればよいのでは?

この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!