- ベストアンサー
エクセルマクロで検索・抽出したデータを修正・更新して元データに反映
- エクセルのマクロを使用して検索・抽出したデータを修正・更新し、元データに反映させる方法を教えてください。
- エクセルのマクロを使って、検索・抽出したデータを修正・更新して元データに反映させる方法について教えてください。
- エクセルのマクロを活用して、検索・抽出したデータを修正・更新し、元データに反映させる方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問者のレベルではChangeイベントはちょと難しいかも。。(^^;;; で、Sheet2に抽出後、修正データを入れ、 それが正しいかどうか確認した後に、Sheet1へ転記する方がいいかも。 '------------------------------------------------ Sub 更新() Dim R1 As Long Dim R2 As Long For R2 = 5 To Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row For R1 = 2 To Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row If Sheets("Sheet1").Cells(R1, "A") = Sheets("Sheet2").Cells(R2, "A") And _ Sheets("Sheet1").Cells(R1, "B") = Sheets("Sheet2").Cells(R2, "B") And _ Sheets("Sheet1").Cells(R1, "D") = Sheets("Sheet2").Cells(R2, "C") Then Sheets("Sheet1").Cells(R1, "E") = Sheets("Sheet2").Cells(R2, "D") Sheets("Sheet1").Cells(R1, "F") = Sheets("Sheet2").Cells(R2, "E") Exit For End If Next R1 Next R2 End Sub '------------------------------------------- 一行のコードが長くなるのでRangeのValueプロパティは省いてあります。 それから処理の流れには関係ないことですが、 シートを扱うために変数を使うとコードが短くすっきりなります。 Dim WS1 As Worksheets Set WS1 = Worksheets("Sheet1") 最初でこのようしておくと、 以後、Worksheets("Sheet1")の代わりにWS1を使えるということです。 以上です。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2の検索結果を表示させる際に元の表の何行目かを同時に表示させるようにします。 シート2で変更した場合にはPrivate Sub Worksheet_Change(ByVal Target As Range) で変更されたデータのある行での元の表の行を求めて元の表のデータを変更するようにすればよいでしょう。
お礼
ありがとうございます。
補足
ご回答ありがとうございます。 なにぶん初心者なので・・・ 具体的に検索表示と更新するためのマクロを教えていただけないでしょうか? よろしくお願いいたします。
お礼
お礼が遅くなり申し訳ございません。 大変参考になりました。 ありがとうございます。