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

Excel比较两列,将匹配行复制到新工作表,excel,compare,formula,Excel,Compare,Formula,我试着这么做已经有一段时间了,但一直遇到障碍 我有一张Excel表格,有5列数据:a、B、C、D&E 我有另一列F,其中有一些数据 我想要的是一个公式或宏,这样我就可以在B列中找到F列中的所有值,并且只将整行(a、B、C、D&E)复制到一个新表中(或者只删除所有其他值) 我试着做一个公式并删除错误行,但它会把数据弄乱 有什么想法吗?据我所知,你有如下数据 比较C列和B列 A B C Row 1 Value 1 Value 3 Row 2 Value 2 Value

我试着这么做已经有一段时间了,但一直遇到障碍

我有一张Excel表格,有5列数据:a、B、C、D&E

我有另一列F,其中有一些数据

我想要的是一个公式或宏,这样我就可以在B列中找到F列中的所有值,并且只将整行(a、B、C、D&E)复制到一个新表中(或者只删除所有其他值)

我试着做一个公式并删除错误行,但它会把数据弄乱


有什么想法吗?

据我所知,你有如下数据

比较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
你想要的结果是第二张

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
Sub宏1()
昏暗的柜台一样长
最后一排一样长
最后一行=10
作为字符串的Dim arrColF(10)
图纸(“图纸1”)。选择
对于计数器=1到最后一行步骤1
arrColF(计数器-1)=表1.单元格(计数器,3).值
下一个柜台
arrStr=Join(arrColF,“,”)
像字符串一样的模糊排列
对于计数器=1到最后一行步骤1
如果InStr(1,arrStr,Sheet1.单元格(计数器,2).值&“,”)>0,则
strRange=strRange&“A”和计数器&“B”和计数器
如果Trim(strRange)“,则strRange=strRange&”
如果结束
下一个柜台
strRange=左(strRange,Len(strRange)-1)
表1.范围(排列)。选择
选择,复制
图纸(“图纸2”)。选择
范围(“A1”)。选择
活动表。粘贴
端接头

据我所知,您有如下数据

比较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
你想要的结果是第二张

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
Sub宏1()
昏暗的柜台一样长
最后一排一样长
最后一行=10
作为字符串的Dim arrColF(10)
图纸(“图纸1”)。选择
对于计数器=1到最后一行步骤1
arrColF(计数器-1)=表1.单元格(计数器,3).值
下一个柜台
arrStr=Join(arrColF,“,”)
像字符串一样的模糊排列
对于计数器=1到最后一行步骤1
如果InStr(1,arrStr,Sheet1.单元格(计数器,2).值&“,”)>0,则
strRange=strRange&“A”和计数器&“B”和计数器
如果Trim(strRange)“,则strRange=strRange&”
如果结束
下一个柜台
strRange=左(strRange,Len(strRange)-1)
表1.范围(排列)。选择
选择,复制
图纸(“图纸2”)。选择
范围(“A1”)。选择
活动表。粘贴
端接头

请提供示例以更清晰。请提供示例以更清晰。