Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32185 / 76734 ←次へ | 前へ→

【49788】Re:シート1の工数合計値をシート2の3つの条件に合うセルに加算していきたい。
回答  Kein  - 07/6/22(金) 1:43 -

引用なし
パスワード
   作業日報シートのN列最終入力行は、列の合計をする数式が入っているとして
そこを処理対象から外しました。
あと工数集計表シートの各区分の表は、職場が全てA列の値と一致している
(つまりI列もQ列もA列のコピー)という前提で、A列のみから検索しています。
もう一つ、当然ですが作業日報シートのB列の値は、確実に日付型であることも
前提になります。そうでないと Month関数 がエラーになります。

Sub MyData_Total()
  Dim Ary1 As Variant, Ary2 As Variant
  Dim Sh1 As Worksheet, Sh2 As Worksheet
  Dim C As Range
  Dim MyM As Integer, i As Integer
  Dim xC As Integer, xR As Integer
  Dim Ad As String
 
  Ary1 = Array(10, 30, 50, 61, 62, 63)
  Ary2 = Array(0, 2, 10, 18, 2, 10, 18)
  Set Sh1 = Worksheets("作業日報")
  Set Sh2 = Worksheets("工数集計表")
  With Application
   For Each C In Sh1.Range("N5", _
   Sh1.Range("N65536").End(xlUp).Offset(-1))
     MyM = Month(C.Offset(, -12).Value) - 1
     i = .Match(C.Offset(, -5).Value, Ary1, 0)
     xC = MyM + Ary2(i)
     Select Case i
      Case 1 To 3: Ad = "A1:A28"
      Case Else: Ad = "A31:A58"
     End Select
     xR = .Match(C.Offset(, -11).Value, Sh2.Range(Ad), 0)
     If Ad = "A31:A58" Then xR = xR + 30
     With Sh2.Cells(xR, xC)
      .Value = .Value + C.Value
     End With
   Next
   .Goto Sh2.Range("A1"), True
  End With
  Set Sh1 = Nothing: Set Sh2 = Nothing
  MsgBox "各データを合計しました", 64
End Sub

3 hits

【49785】シート1の工数合計値をシート2の3つの条件に合うセルに加算していきたい... 川森正守 07/6/21(木) 21:46 質問
【49786】Re:シート1の工数合計値をシート2の3つ... かみちゃん 07/6/21(木) 22:06 発言
【49787】Re:シート1の工数合計値をシート2の3つ... かみちゃん 07/6/21(木) 22:43 発言
【49788】Re:シート1の工数合計値をシート2の3つ... Kein 07/6/22(金) 1:43 回答
【49807】Re:シート1の工数合計値をシート2の3つ... 川森正守 07/6/23(土) 7:14 お礼

32185 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free