質問です。


エクセルのsheet2にあるデータを参照してsheet1のB列のキーに合致する行にE列F列G列H列のデータをコピーするマクロまたは関数をお願いします。
参照データ
sheet2
B列    E列   F列   G列  H列
AAAA   1000  500   20   10 
BBBB   2000  300   50   2  
データ行は2行目からです


コピー先
sheet1
B列    E列   F列   G列  H列
AAAA   1000  500   20   10 
BBBB   2000  300   50   2
CCCC
データ行は3行目からです。
よろしくお願いします。

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2011/05/14 09:55:40
  • 終了:2011/05/14 12:55:23

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692011/05/14 10:38:52

ポイント60pt

関数ならばVLOOKUPを使えばできます。

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9591.html

ただし、数万行とかデータが多くなるとマクロでやってしまったほうがいいかもしれません。


Sub Macro()
    '開始行
    Const stRow As Integer = 3
    Dim i As Long
    Dim lastRow As Long
    Dim obj As Object
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet

    'デフォルトではSheet1は大文字で始まりますが、質問分のようにsheet1にしている場合は合わせてください。
    Set ws1 = Worksheets("Sheet1")
    Set ws2 = Worksheets("Sheet2")
    
    lastRow = ws1.Cells(Rows.Count, "B").End(xlUp).Row
    
    For i = stRow To lastRow
        Set obj = ws2.Range("B:B").Find(ws1.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
        If Not obj Is Nothing Then
            ws2.Range(ws2.Cells(obj.Row, "E"), ws2.Cells(obj.Row, "H")).Copy ws1.Cells(i, "E")
        End If
    Next i
End Sub
id:inosisi4141

ありがとうございました。

マクロでやってみました。

うまくいきました素晴らしいです。

2011/05/14 11:34:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません