3つのワークシートを含むワークブックがあります。ワークブックAの列AとC、およびワークシートの列BとDの基準(インデックス?)に基づいて、ワークブックBの列K(行)の値をワークブックAの列CF(行)の値に変更する必要がありますB.つまり、これらのワークシートには異なる順序でデータが含まれているため、単純にループしてコピーすることはできません。ワークシートAのCF(行)の行番号を見つける必要があります。ワークシートAとCの列は、ワークシートのABとDの列と同じです。
PsuedoSQL
UPDATE
Worksheet B
SET
Worksheet B.K = Worksheet A.CF
FROM
Worksheet A
WHERE
Worksheet A.B = Worksheet B.B
ワークシートA、列CFから選択します。AAとACはワークシートBBとBDに等しく、ワークシートBK(行)を値worksheetA.CF(行)に設定します。
私が持っているコードは、ワークシートAの列Aで、インデックスやマッピングなしで、一致するテキストを持つ最後の列を見つけるルックアップです。
Public Function FindPnum(keyword As Variant) As Variant
Dim ws As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Dim tRow As Long
Dim tCol As Integer
Set ws = Sheets("Data")
Set rng1 = ws.Cells.Find(keyword, ws.[b2], xlValues, , xlByRows, xlPrevious)
Set rng2 = ws.Cells.Find(keyword, ws.[b2], xlValues, , xlByColumns, xlPrevious)
If Not rng1 Is Nothing Then
FindPnum = Cells(rng1.Row, rng2.Column).Address(0, 0)
End If
End Function