如何比较两列并在VBA中复制值

时间:2019-03-08 20:15:20

标签: excel vba copy paste

我试图弄清楚如何编写比较代码。我有两个工作表,sheet1和sheet2。

在sheet1中,A列中的ID编号为五位数字,在sheet2中,C列中的ID编号具有相同的五位数字,但是在sheet2中,ID号与sheet1中的A列的行不同,是不同的行。 >

我正在尝试找出如何在sheet1列A中进行比较以在sheet2列B中的ANY行中搜索匹配项,然后将值从sheet2列C中的同一行复制到sheet1列D中!

这是我自己的测试代码,但是不起作用。

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 :(得分:-1)

您发布的代码同时具有语法错误和逻辑错误,我不确定您到底想做什么。您可以张贴工作簿示例吗? 我用代码中的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