• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2013VBAでVLOOKUP条件付き)

Excel2013VBAでVLOOKUP関数を使った商品名と商品コードの取得方法

このQ&Aのポイント
  • Excel2013VBAでVLOOKUP関数を使用して、アクティブシートの表の商品名に対応した商品コードを取得する方法を教えてください。
  • 条件として、テーブルシートの商品コードが空白の場合は処理を行わず、アクティブシートの商品名の下の行が空白の場合のみ処理を行います。また、連続して入力された商品名がある場合は、商品コードが存在する場合には処理を中断し、セル番地を表示します。
  • 現在のコードはフリーズすることがありますが、一部動作確認ができているので、修正方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>For Each h In Range("A:A,D:D,G:G") A,D,G列の全てのセルを対象にするのは、やりすぎです。エラーの間接的な原因もここにあると想定できます。 sub macro1()  dim h as range  dim buf as variant  on error resume next  for each h in range("A:A,D:D,G:G").specialcells(xlcelltypeconstants)   buf = ""   buf = application.worksheetfunction.vlookup(h.value, worksheets("テーブル").range("B:C"), 2, false)   if h.offset(1) = "" then    h.offset(1) = buf   elseif buf <> "" then    h.select    msgbox h.address    exit sub   end if  next end sub

hinoki24
質問者

お礼

やりすぎですか。でも教えていただいたものだと問題なく動作しました。どうもありがとうございました。

関連するQ&A