プロが教えるわが家の防犯対策術!

エクセル2007を使用してます。初心者です。

1行名に列ごとのタイトルが入ってます。

A列~S列まで色々とデータが入っており、M列に日付(20140618のように)が入ってます。


このシートを日付ごとに別シートに分けたいのですが、何か計算式かもしくはマクロでできますか?

できれば、R列に入っている数字を日付のあとにつけて自動で保存できると大変助かるのですが・・・。(20140618-2 というような感じ)

マクロの扱い方も良く分からないので教えていただけると助かります。

A 回答 (1件)

下記のマクロを、開発-VisualBasic で開いたウインドウに貼りつけて、実行ください。



A列からS列までデータがはいっていると書いてありますが、このマクロは列単位で別シートにコピーするようになっています。支障あれば修正ください。
元データのバックアップをとってから、マクロを実行してください。

Sub Macro1()
Dim original_sheetname
Dim i, same As Integer
original_sheetname = ActiveSheet.Name
ActiveWorkbook.Worksheets(original_sheetname).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(original_sheetname).Sort.SortFields.Add Key:=Range("M1:M7"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(original_sheetname).Sort
.SetRange Range("A1:S7")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For i = 2 To Range("a1").End(xlDown).Row + 1 'm=13 r=18
If Cells(i, 13) <> Cells(i + 1, 13) Then
Range(Rows(i), Rows(i - same)).Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.Insert Shift:=xlDown
ActiveSheet.Name = Cells(ActiveCell.Row, 13).Value & "-" & Cells(ActiveCell.Row, 18)
Worksheets(original_sheetname).Select
same = 0
Else
same = same + 1
End If
Next i
End Sub
    • good
    • 1
この回答へのお礼

回答ありがとうございます!

こちらのマクロでできました。
ありがとうございました!

お礼日時:2014/06/23 16:06

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