"呼び出された"列のその行の値が別のシートの別のテーブルに "Y"に変更されたとき、最初のシートのテーブルのある行から値をコピーしようとしています。列は各表の間で一致しないので、どの列が他の表のどこにあるかを定義する必要があります。私は2番目のテーブルに新しい行を貼り付け、その値が "Y"に変更された行から値をコピーしたいだけです。これは私がやっていることを伝えるための私の最も簡単なコードですが、配列を含む多くのことを試しました。 "Table1"は最初のシート "Master"にあり、Table2は2番目のシート "Called List"にあります。セルの変更時にテーブル間の値をコピー
EDIT:これは私の新しいコードで、 "Table2"の正しい列に値をコピーするのに成功しますが、 "Called"が "Y"に変更された現在行の代わりにすべての行がコピーされます。 "Table1"の "Y"が挿入されている行だけ "Table2"の新しい行にコピーする方法はありますか?
Private Sub Worksheet_Change(ByVal Target As Range)
'Application.ScreenUpdating = False
Application.EnableEvents = False 'to prevent endless loop
Dim KeyCells As Range
Dim NewRow As ListRow
Set KeyCells = Range("Table1[Called]")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Target.Value = "Y" Then
Set NewRow = Worksheets("Called List").ListObjects("Table2").ListRows.Add '(AlwaysInsert:=True)
Worksheets("Called List").Range("Table2[Lessor]").Value = Worksheets("Master").Range("Table1[Lessor]").Value
Worksheets("Called List").Range("Table2[Phone]").Value = Worksheets("Master").Range("Table1[Phone Number]").Value
Worksheets("Called List").Range("Table2[Address]").Value = Worksheets("Master").Range("Table1[Address]").Value
Worksheets("Called List").Range("Table2[Sec]").Value = Worksheets("Master").Range("Table1[Sec]").Value
Worksheets("Called List").Range("Table2[Twn]").Value = Worksheets("Master").Range("Table1[Twn]").Value
Worksheets("Called List").Range("Table2[Rng]").Value = Worksheets("Master").Range("Table1[Rng]").Value
Worksheets("Called List").Range("Table2[County]").Value = Worksheets("Master").Range("Table1[County]").Value
Worksheets("Called List").Range("Table2[Legal Desc]").Value = Worksheets("Master").Range("Table1[Tract]").Value
Worksheets("Called List").Range("Table2[Gross Acres]").Value = Worksheets("Master").Range("Table1[Gross Acres]").Value
Worksheets("Called List").Range("Table2[Assumed NMA]").Value = Worksheets("Master").Range("Table1[Assumed NMA]").Value
Worksheets("Called List").Range("Table2[Comments]").Value = Worksheets("Master").Range("Table1[Notes]").Value
End If
End If
Application.EnableEvents = True
'Application.ScreenUpdating = True
End Sub
何現在のコードに問題またはエラーメッセージがありますか? – nekomatic
あなたが 'If Not Application.Intersect(KeyCells、Range(" Table1 [Called] ")))がNothingであることを達成しようとしているものが得られません。その特定のテーブルに 'KeyCells'を設定していませんか?あなたは 'Target'の範囲と交差するべきではありませんか? – nbayly
エラーはありません。ただ実行されません。何が問題なのかわからないので、エラーよりもイライラします。 – SoySauceWDF