[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『他シートのデータ更新について』(D)
他シートのデータ更新みついて
シート1のE4セルにIDが入力されており、シート1のK16セルの値を変更した際、シート2のA7セルより下にIDが入力されているのですが、A7以下の中からE4セルと同じIDを探し、その行のF列の値を同じように変更するマクロを教えていただけないでしょうか。
よろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
>シート1のE4セルにIDが入力されており
そのセルがIDの入力欄ということですよね?
>シート1のK16セルの値を変更した際、シート2のA7セルより下にIDが入力されているのですが
別途Changeイベントで、累積処理してるということですかね
>A7以下の中からE4セルと同じIDを探し
たぶん"シート2の"A7以下ですよね。(検索値であるE4セルは"シート1"でしょうけど)
この場合「E4セルと同じID」が複数あったりするケースはありませんか?
複数あった場合はどうするのですか?
>その行のF列の値を同じように変更
"同じように"とは何と"同じように"なのですか?
■2
おそらく流れとしては
(1)シート1のE4の値を検索値としてFindメソッドを使い、シート2のA7〜A列最終行までを検索する (2)↑で見つかったら他にないか、FindNextメソッドを使い、シート2のA7〜A列最終行までを検索する (3)↑で見つかったら他にないか、FindNextメソッドを使い、シート2のA7〜A列最終行までを検索する (4)2〜3をくりかえして、該当する【セル】を全部見つけたら (5)見つけたセルが含まれる行全体と F列が交差するセルに対して【何かと同じ処理】を行う
みたいな感じにすればよいとおもいますが、現在詰まっているのはどの部分ですか?
(もこな2) 2021/03/05(金) 19:13
>シート1のK16セルの値を変更した際、シート2のA7セルより下にIDが入力されているのですが
別途Changeイベントで、累積処理してるということですかね
→Changeイベントを理解してません。すみません。要はシート1とシート2に共通のIDがあり、シート1での変更内容をシート2に変更したい意図です。
>A7以下の中からE4セルと同じIDを探し
たぶん"シート2の"A7以下ですよね。(検索値であるE4セルは"シート1"でしょうけど)
この場合「E4セルと同じID」が複数あったりするケースはありませんか?
→シート2です。一意の値で重複はないですが、チェックとかもできるのでしょうか?それができたらすごいですね。
複数あった場合はどうするのですか?
>その行のF列の値を同じように変更
"同じように"とは何と"同じように"なのですか?
シート1の値の変更内容とおなじ内容に変更する意図です。
よろしくお願いいたします。
(D) 2021/03/05(金) 20:37
こんな感じかな?
(Sinking Time) 2021/03/05(金) 20:55
Sub てすと() Dim MyRNG As Range Dim 最終行 As Long
Stop 'ブレークポイントの代わり
'▼シート1のK16セルの値を変更 Worksheets("シート1").Range("K16").Value = "テスト値"
With Worksheets("シート2") 最終行 = .Cells(.Rows.Count, 1).End(xlUp).Row If 最終行 < 7 Then MsgBox "データ無し" Exit Sub Else '▼シート2のA7〜A列最終行までで、シート1のE4セルと同じ値のセルを探す Set MyRNG = .Range("A7:A" & 最終行).Find(What:=Worksheets("シート1").Range("F4").Value, LookIn:=xlValues, LookAt:=xlWhole) End If
If Not MyRNG Is Nothing Then '▼見つかった場合、当該行のF列セルの値をシート1のK16セルと同じにする .Cells(MyRNG.Rows, "F").Value = Worksheets("シート1").Range("K16").Value End If End With
End Sub
(もこな2) 2021/03/05(金) 22:09
教えていただきたいのですが、 Stop 'ブレークポイントの代わりはないとエラーになるのでしょうか?
Worksheets("シート1").Range("K16").Value = "テスト値"←テスト値の意味を教えてほしいです。
以上、よろしくお願いいたします。
(F) 2021/03/06(土) 13:02
>←テスト値の意味を教えてほしいです。
テスト用の値として「テスト値」という文字列を使用しました。
(もこな2 ) 2021/03/07(日) 12:34
以下の箇所でアプリケーションの定義エラーがでました。 .Cells(MyRNG.Rows, "F").Value = Worksheets("シート1").Range("K16").Value
値を確認したところ、MyRNG.Rowsの値が行番号ではなく、MyRNG のままだからですかね?どう対応すれば良いのでしょうか。
(D) 2021/03/09(火) 18:12
勘違いでしたらご容赦を。
>MyRNG.Rows
↓?
MyRNG.Row (OK) 2021/03/09(火) 18:28
(D) 2021/03/09(火) 18:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.