|
>Jakaさん
色々とありがとうございます。
>はっきり言って、実際のシート名を書かないので解りません。
申し訳ありません。質問の部分に書いたつもりでしたので・・・。
担当者によって使用開始月が変わるため、全員同じではありませんが、
入力シートが「10月入力」「11月入力」と3月まで。(←ここは全員です)
集計シートはマクロを使用して「10月集計」「11月集計」と後ろに
追加していく形にしています。
シートのインデックスをカウントして、処理を分けようかと考えて
います。
前から2枚分は、固定のシートがあるため、3枚目は当月処理のみ、
4枚目は前月の処理をプラス、それ以降は前々月の処理も行わせる、
というように考えていました。
何月の処理をするかは、Inputboxでユーザーに入力してもらいます。
集計のシートのフォーマットをコピーし、データを転記して、
集計を取った後、アウトラインを削除しています。
以下が作成してみたコードです。
長くて効率が悪いと思いますが、どうぞ宜しくお願いいたします。
'当月の転記および集計
Syuukei:
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = InputName & "月度集計"
Sheets("集計").Select '集計用の枠をコピー
Cells.Select
Selection.Copy
Sheets(InputName & "月度集計").Select
ActiveSheet.Paste
Range("A3").Select
Sheets(WKN).Select '入力データをコピー
Union(Range("A3:B" & Rowct), Range("F3:F" & Rowct), Range("AM3:AN" & Rowct)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets(InputName & "月度集計").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A3").Select
'集計計算を実行
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(4, 5), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Selection.Subtotal GroupBy:=1, Function:=xlCount, TotalList:=Array(2), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=False
Cells.Select
Selection.Copy
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
Selection.RemoveSubtotal 'アウトライン削除
Sct = Range("A3").End(xlDown).Row
'If InputName >= 4 Then
'GoTo Onemonth
Onemonth:
前月の部分を参照する処理をしたい
'IF InputName >= 5 Then
'GoTo Twomonth
Twomonth:
前々月の参照する処理
'End If
|
|