Excel比较两列,将匹配的行复制到新工作表

时间:2012-06-13 05:18:41

标签: excel compare formula

我一直试图这样做一段时间不断遇到障碍。

我在Excel中有一个包含5列数据的工作表:A,B,C,D&即

我有另一列F,它有一些数据。

我想要的是一个公式或宏,以便我可以找到B列中F列的所有值,并只将整行(A,B,C,D& E)复制到一个新的表格中(或者只是丢弃所有其他值。)

我尝试了一个公式并删除了错误行,但它混淆了数据。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

据我了解,您有以下数据

将C列与B

进行比较
A       B       C
Row 1   Value 1 Value 3
Row 2   Value 2 Value 5
Row 3   Value 3 Value 8
Row 4   Value 4 Value 3
Row 5   Value 5 Value 5
Row 6   Value 6 Value 8
Row 7   Value 7 Value 3
Row 8   Value 8 Value 5
Row 9   Value 9 Value 8

你想要在sheet2中得到结果

A       B
Row 3   Value 3
Row 5   Value 5
Row 8   Value 8

尝试以下代码

Sub Macro1()

    Dim Counter As Long

    Dim lastRow As Long
    lastRow = 10
    Dim arrColF(10) As String

    Sheets("Sheet1").Select

    For Counter = 1 To lastRow Step 1
        arrColF(Counter - 1) = Sheet1.Cells(Counter, 3).Value
    Next Counter

    arrStr = Join(arrColF, ", ")
    Dim strRange As String

    For Counter = 1 To lastRow Step 1
        If InStr(1, arrStr, Sheet1.Cells(Counter, 2).Value & ", ") > 0 Then
            strRange = strRange & "A" & Counter & ":B" & Counter
            If Trim(strRange) <> "" Then strRange = strRange & ","
        End If
    Next Counter
    strRange = Left(strRange, Len(strRange) - 1)

    Sheet1.Range(strRange).Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste

End Sub