【问题标题】:how to compare two column and copy the value in VBA如何比较两列并复制VBA中的值
【发布时间】:2019-03-08 20:15:20
【问题描述】:

我正在尝试弄清楚如何编写比较代码。我有两张纸,sheet1 和 sheet2。

在 sheet1 中 A 列有五位 id 编号,在 sheet2 中在 C 列中有相同的五位 id 编号,但在 sheet2 中,id 编号与 sheet1 中的 A 列不在同一行,它们是不同的行。

我试图弄清楚如何在 sheet1 列 A 中进行比较以在 sheet2 列 B 中的任何行中搜索匹配项,然后将值从 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

【问题讨论】:

    标签: excel vba copy paste


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多