- ベストアンサー
EXCEL VBA VLOOKUPの様な検索したい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その通りVLOOKUPしてしまうのが一番簡単です。 sub macro1() dim r as long worksheets("Sheet1").select for r = 3 to cells(rows.count, "A").end(xlup).row cells(r, "C").value = application.vlookup(cells(r, "A").value, worksheets("Sheet2").range("A:B"), 2, false) next r end sub
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >Vlookupのような動き・・・ とありますので一例です。 Sheet2のデータはA・B列にあるとします。 Sub Sample1() Dim i As Long, c As Range, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") i = wS1.Cells(Rows.Count, 1).End(xlUp).Row If i > 2 Then Range(Cells(3, "C"), Cells(i, "C")).ClearContents End If For i = 3 To wS1.Cells(Rows.Count, 1).End(xlUp).Row Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then wS1.Cells(i, "C") = c.Offset(, 1) End If Next i End Sub こんな感じではどうでしょうか? ※ No.1さんが回答されていらっしゃるように VLOOKUP関数をそのまま使った方が簡単なような気がします。m(_ _)m
お礼
tom04さん、早速のご連絡ありがとうございます!! ご教授いただきました方法で実現できました! No.1さんにご回答いただきました様にvlookupをそのまま(?)使用するという方法を知りませんでした(^^;; いつもtom04さんからは詳細なロジックをご教授いただいておりまして、とても勉強させていただいております。 いつも本当にありがとうございます!!
お礼
keithinさん、早速のご連絡ありがとうございます!! ご教授いただきました方法で実現できました! vlookupをそのまま(?)使用すればよいのですね。てっきりロジックを組まないとできないのかと思っておりました。 いつも本当にありがとうございます!!