- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VLOOKUP関数と同じことをVBAでおこなうには)
VBAでのVLOOKUP関数について
このQ&Aのポイント
- VBAでのVLOOKUP関数と同様の処理を行う方法について質問です。
- 現在使用しているVBAでは、列での検索と入力が行われていますが、行での処理を行いたいです。
- 具体的には、Sheet1のB列の値をSheet2の1行で検索し、Sheet2の2行に入力するだけでなく、Sheet1のC列の値をSheet3の1行で検索し、Sheet3の2行に入力したいと思っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 外していたらごめんなさい。 質問内に >For n = 2 To 5 '処理するSheet2の行数範囲 とありますので、とりあえずSheet2・Sheet3ともB~E列の2行目に表示するようにしてみました。 尚、Sheet2・3とも検索はB1~E1セルに入力されているもので検索するとしています。 ↓のコードを標準モジュールにコピー&ペーストしてマクロを試してみてください。 Sub test() Dim i, j As Long Dim ws1, ws2, ws3 As Worksheet Set ws1 = Worksheets("sheet1") Set ws2 = Worksheets("sheet2") Set ws3 = Worksheets("sheet3") For i = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To 5 If ws2.Cells(1, j) = ws1.Cells(i, 1) Then ws2.Cells(2, j) = ws1.Cells(i, 2) End If If ws3.Cells(1, j) = ws1.Cells(i, 1) Then ws3.Cells(2, j) = ws1.Cells(i, 3) End If Next j Next i End Sub こんな感じで良いのですかね? 的外れなら読み流してください。m(__)m
お礼
回答ありがとうございます。こちらの説明が不十分であったために失礼いたしました。回答いただいた内容でうまくできました、ありがとうございます。当方検索、出力範囲、位置、の移動を考えています。忙しくなければ ”For i = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row” の意味を教えていただければ幸いです。よろしくお願いします。