プロが教える店舗&オフィスのセキュリティ対策術

Excel マクロ VBA 別シートのセルを検索し、該当するセルの右にあるセルを入力させる方法
sheet『品名マスタ』にはA列に№、B列にIdが有り、A列のNOとB列IDを両方一致したとき
C列の商品名を別sheet『一覧』に反映させたい。
IdとNOが一致しないときは空白でよいです。
どなたか詳しい方ご教授いただけないでしょうか?
(OS:Windows10 Excel:2013を使用しております。)

A 回答 (1件)

こんにちは!



一例です。標準モジュールにしてください。

Sub Sample1()
Dim myDic As Object
Dim i As Long, lastRow As Long
Dim myStr As String, wS As Worksheet
Dim myR

Set myDic = CreateObject("Scripting.Dictionary")
Set wS = Worksheets("一覧")
With Worksheets("品名マスタ")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(.Cells(2, "A"), .Cells(lastRow, "C"))
For i = 1 To UBound(myR, 1)
myStr = myR(i, 1) & "_" & myR(i, 2)
myDic.Add myStr, myR(i, 3)
Next i
End With
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(wS.Cells(2, "A"), wS.Cells(lastRow, "C"))
For i = 1 To UBound(myR, 1)
myStr = myR(i, 1) & "_" & myR(i, 2)
If myDic.exists(myStr) Then
myR(i, 3) = myDic(myStr)
Else
myR(i, 3) = ""
End If
Next i
Range(wS.Cells(2, "A"), wS.Cells(lastRow, "C")) = myR
Set myDic = Nothing
MsgBox "完了"
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

1週間悩んでました。助かりました。本当に有難う御座いました。

お礼日時:2018/02/17 11:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!