У меня есть лист1 (sh1)
, где у меня есть название страны, скажем, (A2)
и направление в (B2)
, я хотел бы найти строку на листе2 (sh2)
, где column A
также содержит тот же город. name и column B
также содержит тот же район и скопирует всю строку рядом с соответствующей строкой на sh1
. Теперь я хотел бы перебрать все строки на листе 1, найти соответствующие строки на s2
и скопировать его таким же образом.
(может показаться, что я пытаюсь дублировать данные, но соответствующая строка в sh2
содержит другую полезную информацию, которую я хотел бы скопировать в sh1
)
чтобы проиллюстрировать:
On Sheet1:
Column A Column B
(header) (header)
San Diego South
New York North
Chicago East
On Sheet2:
Column A Column B
(header) (header)
Chicago East
San Diego South
New York North
Таким образом, цикл сначала проверяет Сан-Диего, затем Нью-Йорк, затем Чикаго и так далее до конца столбца.
Вот мой код, который далеко не соответствует тому, чего я хотел бы достичь:
Sub Matchcountry()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim r As Range
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
r = lastrow = sh1.Range("A" & Rows.Count) + 2.End(xlUp).Row
For x = 1 To r
If sh1.Range("A" & x) = sh2.Range("A" & x) And sh1.Range("B" & x) = sh1.Range("A" & x) & sh2.Range("B" & x) Then
sh1.Range("A" & x).EntireRow.Copy Destination:=sh2.Range("C" & x)
x = x + 1
Next x
End Sub