| 
    
     |  | マクロ初心者ですが、業務で必要なため勉強中です。 今回、必要なマクロを作成しておりまして、途中工程までは出来ているのですが、この先につまづき、ご教授頂けませんでしょうか?
 過去の質問等を見てつなぎ合わせてみたのですが、上手くいかず・・。
 動いても思うように動かないためお助けいただきたく、お願いします。
 
 マクロブックシート3〜5に各支店のデータをまとめたものがあります。
 まずはマクロブックシート3(A支店)の値と集計表ブックのシート2の各項目と一致するか検索し(例.りんご、バナナ等商品)、一致したらマクロシート3内もう一項目の文字を判別(例.青森、秋田等)し、その文字によりシート3シートに記載された数値(「1」個)を集計表ブックシート2の各欄へ足して集計するというものです。
 具体的にはマクロブックのシート3のC列の値と、集計表のF6:F115範囲で項目の一致を検索、一致後さらにシート3のG列の値により、Iに記入の数値を集計表の指定欄へ足していきます。集計表は更新していきますので、空データではなく、初期値に+していきます。(初期値0の場合もあります)
 また、マクロブックのデータのC列の値は重複する文字がありますが、各1件として検索となります。(りんご、りんご、バナナ等)
 青森、秋田等の部分は空白の場合もあります。
 集計シートのF6〜F115の間は空欄もあります。(間に合計するセル等入れているため)
 検索が一致しなければ、隣に×等をつけて、後でソートして別シートにコピーしようと思っています。
 
 同じようにシート4(B支店)、シート5も集計していきますが、集計先のセルはそれぞれ異なります。
 とりあえず、シート3用のマクロを記載して、シート4とシート5分もコピーしセルの値等を変えて、下記マクロを記載してみましたが、正しく動きません。
 正しく検索して集計できているもの、出来ないものもあり。
 シート3はまだいいのですが、シート4やシート5についてはコピーして手直ししたのですが全然動きません。
 
 何がいけないのか不明のため、ご教授頂けませんでしょうか。
 
 もっと良い方法があれば、組みなおして頂いて全く問題ありません。
 記載方法がわからず、マッチ検索ではなく、find検索がいい等、手掛かりがあると助かります。
 
 
 Sub データ集計()
 
 Set sh2 = Workbooks("集計表.xlsm").Worksheets(2)
 
 'A支店のデータを集計
 'マクロブックの3シート目のA列最終行を取得
 mxr1 = ThisWorkbook.Worksheets(3).Range("A" & Rows.Count).End(xlUp).Row
 For k = 2 To mxr1
 'マクロブックの3シート目のC2セルから最終行までを集計票ブックのF6からF115のセルに記載の値と一致させる
 MyR = Application.Match(ThisWorkbook.Worksheets(3).Cells(k, "C").Value, sh2.Range("F6:F115"), 0)
 '一致したら
 If IsNumeric(MyR) Then
 'myRに5を足した値
 MyR2 = MyR + 5
 Count = ThisWorkbook.Worksheets(3).Cells(k, "I").Value
 'マクロブックの3シート目のG列が「青森」であったら
 If ThisWorkbook.Worksheets(3).Cells(k, "G").Value = "青森" Then
 '集計表ブックのシート2のL列に初期入力値にマクロブックのシート3のIの値を足して入力
 sh2.Cells(MyR2, "L").Value = sh2.Cells(MyR2, "L").Value + Count
 'マクロブックの3シート目のG列が「秋田」であったら
 ElseIf ThisWorkbook.Worksheets(3).Cells(k, "G").Value = "秋田" Then
 '集計表ブックのシート2のP列に初期入力値にマクロブックのシート3のIの値を足して入力
 sh2.Cells(MyR2, "P").Value = sh2.Cells(MyR2, "P").Value + Count
 'マクロブックの3シート目のG列が「空白」であったら
 'A列の値を1シート目に転記する
 ElseIf ThisWorkbook.Worksheets(3).Cells(k, "G").Value = " " Then
 Set pastsaki = ThisWorkbook.Worksheets(1).Range("A1").Offset(BK)
 pastsaki.Value = ThisWorkbook.Worksheets(3).Cells(k, "A").Value
 
 'データがなければ×をつける
 Else
 ThisWorkbook.Worksheets(3).Cells(k, "j").Value = "X"
 
 End If
 End If
 Next
 
 
 'B支店
 mxr2 = ThisWorkbook.Worksheets(3).Range("A" & Rows.Count).End(xlUp).Row
 For L = 2 To mxr2
 'マクロブックの3シート目のC2セルから最終行までを集計票ブックのF6からF115のセルに記載の値と一致させる
 MyR3 = Application.Match(ThisWorkbook.Worksheets(4).Cells(L, "C").Value, sh2.Range("F6:F115"), 0)
 '一致したら
 If IsNumeric(MyR3) Then
 'myRに5を足した値
 MyR4 = MyR3 + 5
 Count = ThisWorkbook.Worksheets(4).Cells(L, "I").Value
 'マクロブックの4シート目のG列が「青森」であったら
 If ThisWorkbook.Worksheets(4).Cells(L, "G").Value = "青森" Then
 '集計表ブックのシート2のM列に初期入力値にマクロブックのシート3のIの値を足して入力
 sh2.Cells(MyR4, "M").Value = sh2.Cells(MyR4, "M").Value + Count
 'マクロブックの3シート目のG列が「秋田」であったら
 'ElseIf 〜続く
 
 End Sub
 
 |  |