[[20140811105201]] 『オートフィルタ後のVLOOK』(あーちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルタ後の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.