首页 > 解决方案 > 如果数字匹配,将 Sheet1 P 列的内容复制到 Sheet 2

问题描述

我正在使用下面的代码。我的目标是改变这一行:

cell.EntireRow.Copy Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)

如果 Sheet1 A2 中的数字与 Sheet2 A2 匹配
,则将数据从 Sheet1 P2 复制到 Sheet2 P2
(如果 Sheet1 A3 = Sheet2 A3 THEN 将 Sheet1 P3 一直复制到 Sheet2 P3,则连续复制)。

Sub Sheet1Sheet2Compare()
    Dim lRow, x As Long
    
    Sheets("Sheet1").Select
    lRow = Range("A1").End(xlDown).Row
    
    For Each cell In Range("A2:A" & lRow)
        x = 2
        Do
            If cell.Value = Sheets("Sheet2").Cells(x, "A").Value Then
                cell.EntireRow.Copy Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
            End If
            x = x + 1
        Loop Until IsEmpty(Sheets("Sheet2").Cells(x, "A"))
    Next
        
End Sub

标签: excelvbacopy

解决方案


尝试这个

Sub Sheet1Sheet2Compare()
    Dim lRow As Integer, x As Integer, i As Integer
    Dim sht1 As Worksheet, sht2 As Worksheet

    Set sht1 = ThisWorkbook.Worksheets("Sheet1")
    Set sht2 = ThisWorkbook.Worksheets("Sheet2")

    lRow = sht1.Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To lRow
        If sht1.Range("A" & i).Value = sht2.Range("A" & i).Value Then sht2.Range("P" & i).Value = sht1.Range("P" & i).Value
    Next i

End Sub

推荐阅读