我有一个包含三个工作表的工作簿。我需要根据工作簿 A 上的列 A 和 C 以及工作表上的列 B 和 D 的条件(索引?),将工作簿 B 上的列 K(行)中的值更改为工作簿 A 中的列 CF(行)的值B. 也就是说,这些工作表具有不同顺序的数据,不能简单地循环和复制。我需要在工作表 A 中找到 CF(row) 的行号,其中工作表 A 和 C 列与工作表 AB 和 D 列相同。
伪SQL
UPDATE
Worksheet B
SET
Worksheet B.K = Worksheet A.CF
FROM
Worksheet A
WHERE
Worksheet A.B = Worksheet B.B
从工作表 A 中选择,列 CF WHERE AA AND AC 等于工作表 BB 和 BD AND SET Worksheet BK(Row) to Value worksheetA.CF(row)
我的代码是查找在工作表 A 列 A 上找到具有匹配文本的 LAST 列,没有任何索引或映射。
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