|
おはようございます。
Sheet1
> A B C D E F・・・・ M
>製造番号11 4 月 5 月 6 月
>東京本店 15000 12000 13000
>大阪支店 13000 15000 12000
Sheet2
> A B C D E F・・・・M
>製造番号22 5 月 6 月 7月
>東京本店 15000 11000 13000
>大阪支店 14000 15000 11000
Sheet1とSheet2の合計を転記
Sheet3
> A B C D E F G H I
>製造番号 4月 5月 6月 7月 8月 9月 10月 11月・・・
>11 28000 27000 25000
>22 29000 26000 24000
>33
>44
>55
まずは、上記のように、同じブック内で、Sheet3の形を作ってみてはどうでしょうか。
これがでたら、Wprkbooks.Openを利用して、ブック間操作をすればできます。
参考までに、各シートの下に合計を求めるサンプルを作っておきました。
これから先は、いろいろ試してみて、作ってください。
ただし、
A1セルに製造番号○○と必ず入れておいてください。
製造番号11 4 月 5 月 6 月
の項目行は1行目とします。
Sub test()
Dim nmb As String
Dim s As Worksheet
Dim vntM, myArray(1 To 13)
Dim r As Range, rng As Range
Dim LastRow As Long, clmn As Long
'
vntM = Array("製造番号", "4月", "5月", "6月", "7月", "8月", _
"9月", "10月", "11月", "12月", "1月", "2月", "3月")
'
For Each s In ThisWorkbook.Worksheets
nmb = s.Cells(1, 1).Text
If Left(nmb, 4) = "製造番号" Then
LastRow = s.Cells(65536, 1).End(xlUp).Row
For Each r In s.Range("B1:M1")
For clmn = 1 To UBound(vntM)
If vntM(clmn) = r.Text Then Exit For
Next
'
Set rng = r.Offset(1).Resize(LastRow - 1, 1)
myArray(clmn + 1) = Application.Sum(rng)
Next
s.Activate
s.Cells(LastRow + 2, 1).Resize(2, UBound(myArray)).Value = _
Application.Transpose(Application.Transpose(Array(vntM, myArray)))
End If
Next
'
Set rng = Nothing
Erase vntM: Erase myArray
End Sub
|
|