[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタ後のVLOOK』(あーちゃん)
シート1とシート2があります。
シート1のA列に商品コード、B列に商品名が入っているとします。
シート2も同じです。
シート1の商品名が空白の物でオートフィルタをし、シート2に入ってる商品コードとVLOOKし、シート2の商品名をシート1にもってきたいです。
この時VBAで書くとどのようになるのでしょうか。
記録マクロを使ってみたのですがよくわかりません・・・。
商品コード等に関しては増減があります。
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
状況が良くわからないのですが・・・ シート1に、「商品コード」があって「商品名」がないものを シート2から、↑の「商品コード」に有った「商品名」を シート1の商品名に入れたい
ということでしょうか?
マクロの記録でしたら、フィルタではなく、「ジャンプ」機能で空白を選択し、 相対参照の数式を入れる、という形になると思います。
もしVBAをある程度組んでほしいという事でしたら、表の形(商品コードと商品名の列)を 出来る限り詳しく教えてください。 また商品コードに重複があるのか等もなるべく詳しく教えてください。 (稲葉) 2014/08/11(月) 13:18
返事が遅くなり、大変申し訳ありません。
<シート1>
A列 B列
商品コード 商品名
001 みかん
001
002
003
<シート2>
A列 B列
商品コード 商品名
001 みかん
002 イチゴ
003 トマト
・シート1のB列(商品名)が空白のものでオートフィルタ
↓オートフィルタ後
<シート1>
A列 B列
商品コード 商品名
001
002
003
・シート1の商品コードとシート2の商品コードでVLOOKをして、シート1の商品名(B列)に、シート2の商品名を入れたいです。
商品コードですが、シート1,2ともに毎回行数が違います
商品コードの重複はありますが、重複しているもので違う値が入ることはありません。
よろしくお願いいたします。
(あーちゃん) 2014/08/19(火) 15:16
フィルタの必要はないと思うので、最初に提示した案です。 Sub あーちゃん() On Error Resume Next Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!C[-1]:C,2,0)" If Err > 0 Then MsgBox "空白セルはありませんでした": Exit Sub On Error GoTo 0 Range("A1").CurrentRegion.Copy Range("A1").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub (稲葉) 2014/08/19(火) 16:16
ありがとうございます。
無事にできました(^^)
(あーちゃん) 2014/08/20(水) 10:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.