人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です。

エクセルの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行目からです。
よろしくお願いします。

●質問者: inosisi
●カテゴリ:コンピュータ インターネット
✍キーワード:エクセル キー コピー データ マクロ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●60ポイント ベストアンサー

関数ならば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
◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ