Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写宏来比较两个Excel工作表中的列并将匹配项添加到第三个工作表中_Excel_Vba - Fatal编程技术网

如何编写宏来比较两个Excel工作表中的列并将匹配项添加到第三个工作表中

如何编写宏来比较两个Excel工作表中的列并将匹配项添加到第三个工作表中,excel,vba,Excel,Vba,我已经寻找并尝试将我在这个网站上遇到的任何代码(从今天早上开始)整合到一个没有功能或效果不佳的工作应用程序中 我需要能够匹配第1页“A”列中的id号是否与第2页相应的“A”列中的id号匹配,并将匹配项粘贴到第3页的“A”列中。工作表1中的列范围与工作表2的范围不同,工作表3需要在找到匹配项时将其粘贴到每一行中(即,中间没有空白行)。我不需要对不匹配的数字做任何事情 我试图从不同的线程修改代码;它捕捉到了一些火柴,但不是全部。我猜范围不正确,但我真的不知道如何在VBA中编码。此外,该列中还有一些空

我已经寻找并尝试将我在这个网站上遇到的任何代码(从今天早上开始)整合到一个没有功能或效果不佳的工作应用程序中

我需要能够匹配第1页“A”列中的id号是否与第2页相应的“A”列中的id号匹配,并将匹配项粘贴到第3页的“A”列中。工作表1中的列范围与工作表2的范围不同,工作表3需要在找到匹配项时将其粘贴到每一行中(即,中间没有空白行)。我不需要对不匹配的数字做任何事情


我试图从不同的线程修改代码;它捕捉到了一些火柴,但不是全部。我猜范围不正确,但我真的不知道如何在VBA中编码。此外,该列中还有一些空格,其他副本应在此处发布。“if found is nothing then x=0”是不必要的(甚至可能导致前面提到的错误),但是如果我去掉它,就会得到一个类型不匹配错误

Sub matchPAs()

Dim x, i, total, fRow As Integer
Dim found As Range

total = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To total
    match1 = Worksheets(1).Range("A" & i).Value
 Set found = Sheets(2).Columns("A:A").Find(what:=match1)
If found Is Nothing Then
    x = 0
Else
    fRow = Sheets(2).Columns("A:A").Find(what:=match1).Row
    Worksheets(3).Range("A" & i).Value = Worksheets(1).Range("A" & fRow).Value

 End If
Next i

End Sub

如果您查看本页右侧的
相关
标题,您将看到多个问题和答案,您可能希望查看它们。“它捕获了一些匹配项,但不是全部”-听起来您已经基本解决了它。我猜失败的匹配是空格差异。你试过在比较中修剪两条线吗?