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

質問です。
エクセルのsheet1にあるデータを参照してsheet2からsheet8のB列のキーに合致する行にE列F列G列のデータをコピーするマクロをお願いします。

参照データ
sheet1
B列 E列 F列 G列
AAAA 1000 500 20
BBBB 2000 300 50
データ行は2行目からです


コピー先
sheet2からsheet8
B列 E列 F列 G列
AAAA 1000 500 20
BBBB 2000 300 50
CCCC
データ行は2行目からです。

sheet2からsheet8までの名前は任意に変更できるように
マクロの作成お願いします。

よろしくお願いします。

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

▽最新の回答へ

1 ● SALINGER
●60ポイント ベストアンサー
Sub Macro3()
  '開始行
 Const stRow As Integer = 2
 Dim i As Long
 Dim lastRow As Long
 Dim obj As Object
 Dim ws1 As Worksheet
 Dim ws2 As Worksheet
 Dim h As Variant
 Dim j As Integer

  'デフォルトではSheet1は大文字で始まりますが、質問分のようにsheet1にしている場合は合わせてください。
 Set ws1 = Worksheets("Sheet1")
 
  'シート名は任意ということで以下を変更してください
 h = Array("Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7", "Sheet8")
 
 lastRow = ws1.Cells(Rows.Count, "B").End(xlUp).Row
 
 For i = stRow To lastRow
 For j = 0 To UBound(h)
 Set ws2 = Worksheets(h(j))
 Set obj = ws2.Range("B:B").Find(ws1.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
 If Not obj Is Nothing Then
 ws1.Range(ws1.Cells(i, "E"), ws1.Cells(i, "G")).Copy ws2.Cells(obj.Row, "E")
 End If
 Next
 Next i
End Sub
◎質問者からの返答

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

うまく行きました。バッチリです。

また使って何か追加変更等がありましたら

再質問しますのでよろしくお願いします。

関連質問


●質問をもっと探す●



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