ここから本文です

EXCEL VBAについて教えてください。

ple********さん

2018/3/2612:51:18

EXCEL VBAについて教えてください。

マスタシートに品番・品名が載っており、品番はアルファベット2桁+数字3桁で構成されています。

アルファベット2桁にそれぞれ分類があり、そちらもマスタシートに載っています。

違うシートにデータが羅列してあり、そちらに品番のアルファベット2桁から分類を引っ張ってきたいです。
(画像の赤文字の部分です。)

どのように構文を書けば良いか、どなたかご教授ください。

アルファベット,Excel VBA,マスタシート,Rows.Count,アルファベット2桁,品番,Master.Range

閲覧数:
38
回答数:
2

違反報告

ベストアンサーに選ばれた回答

hel********さん

2018/3/2615:38:41

添付図の通りの表として・・。

Sub Sample()
Dim Master As Worksheet, myData As Worksheet
Dim i As Long, Hani As Range, FC As Range
Set Master = Worksheets("マスタ")
Set myData = Worksheets("データ一覧")
Set Hani = Master.Range("D2:D" & Master.Range("D" & Rows.Count).End(xlDown).Row)
With myData
For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
Set FC = Hani.Find(What:=Left(.Range("A" & i).Value, 2), LookAt:=xlWhole)
If Not FC Is Nothing Then
.Range("C" & i).Value = FC.Offset(, 1).Value
End If
Set FC = Nothing
Next i
End With
End Sub

質問した人からのコメント

2018/3/27 14:22:03

ありがとうございます!出来ました!

ベストアンサー以外の回答

1〜1件/1件中

msk********さん

2018/3/2613:05:24

関数では駄目なのでしょうか。
C2に=IFERROR(VLOOKUP(LEFT(A2,2),マスタ!D:E,2,FALSE),"")で以下ドラッグです。

どうしてもマクロという事なら関数を利用してこんな感じです。

Sub sample()
With Sheets("データ一覧")
With .Range("A2", .Cells(Rows.Count, "A").End(xlUp)).Offset(, 2)
.Formula = "=IFERROR(VLOOKUP(LEFT(A2,2),マスタ!D:E,2,FALSE),"""")"
.Value = .Value
End With
End With
End Sub

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる