| 
    
     |  | どうしても分からなくて困っています どなたかアドバイスをいただけるとうれしいです
 
 ブック1のSheet1とブック2のSheet1があり、Sheet1のリストに載っている情報を
 ブック2のSheet1に記載したいのですが、どうしてもうまくいきません
 
 【Sheet1】
 A列    B列    C列   D列
 123    A     T    A5000
 123    B     T    A5700
 456    A     F    A6000
 567    C     F    45600
 567    D     G    A5000
 897    A     R    A6000
 888    A     T    E5000
 
 上記のデータをA列をキーにして、B列D列の情報を
 下記のSheet2へ記載したいのです
 【ブック1のSheet1】のA列のキーが重複している場合は、一番初めに現れた値を摘要します
 
 【ブック2のSheet1】
 A列    B列    C列
 111
 145
 456    A     A6000 ←Sheet1のデータB列D列のデータをB列C列に記載
 567    C     45600 ←Sheet1のデータB列D列のデータをB列C列に記載
 567    C     45600 ←Sheet1のデータB列D列のデータをB列C列に記載
 897    A     A6000 ←Sheet1のデータB列D列のデータをB列C列に記載
 888    A     E5000 ←Sheet1のデータB列D列のデータをB列C列に記載
 456
 567
 123    A     A5000 ←Sheet1のデータB列D列のデータをB列C列に記載
 123    A     A5000 ←Sheet1のデータB列D列のデータをB列C列に記載
 
 Dim MyD As Object, i As Long, TBL
 Dim MyVal, MyKey, MyItem, MyVal2
 
 Set MyD = CreateObject("scripting.dictionary")
 
 TBL = Range("A2", Range("A" & Rows.Count).End(xlUp)).Resize(, 4).Value
 For i = 1 To UBound(TBL, 1)
 MyVal = TBL(i, 2) & "_" & TBL(i, 4)
 If Not TBL(i, 1) = Empty Then
 If Not MyD.exists(TBL(i, 1)) Then
 MyD.Add TBL(i, 1), MyVal
 End If
 End If
 
 Next i
 ↑ここまで、配列に格納
 
 ↓ここから、よく分かりません
 MyKey = MyD.keys
 MyItem = MyD.items
 
 ThisWorkbook.Activate
 For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
 
 If MyKey(i).exists(Cells(i, 1)) Then
 MyVal2 = Split(MyItem(i), "_")
 Range("B" & i).Value = MyVal2(0)
 Range("C" & i).Value = MyVal2(1)
 End If
 Next i
 
 どうかよろしくお願いします
 
 |  |