как сравнить два столбца и скопировать значение в VBA - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь понять, как написать код сравнения. У меня есть два листа ', sheet1 и sheet2.

в листе 1 есть пять цифр идентификаторов в столбце А, в листе 2 имеют те же пять цифр идентификаторов в столбце С, но в листе 2 номер идентификатора не совпадает со строкой А в листе 1, они представляют собой разные строки.

Я пытаюсь выяснить, как сделать сравнения в столбце A листа1 для поиска совпадения в ЛЮБОЙ строке в столбце B листа2, а затем скопировать значение из той же строки в столбце C листа 2 в столбец D листа1!

это мой собственный тестовый код, но он не работает.

Sub FindStuff()

        Dim lr As Long
        Dim i As Integer

lr = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To lr

If UCase(Sheet2.Cells(1, 3).Value) = UCase(Sheet1.Cells(i, 1).Value) Then
    Sheet2.Cells(14, 5).Value = Sheet1.Cells(i, 1).Offset(, 5).Value
      End If
Next i

End Sub

1 Ответ

0 голосов
/ 09 марта 2019

Код, который вы публикуете, имеет как синтаксическую, так и логическую ошибку, я не совсем уверен, что вы пытаетесь сделать. Можете ли вы опубликовать пример рабочей книги? Я изменил вашу формулу с помощью Vlookup в коде, вы можете проверить и сообщить мне, если это то, что вам нужно.

Sub MatchValues()
Dim ws1     As Worksheet, ws2 As Worksheet
Dim lr      As Long
Dim r       As Long

Application.ScreenUpdating = False
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
lr = ws2.Cells(Rows.Count, 3).End(xlUp).Row

For r = 2 To lr
On Error Resume Next
Cells(r, 4) = WorksheetFunction.VLookup(ws2.Cells(r, 3).Value, _
ws1.Range("A:A"), 1, 0)
Next

Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...