比较2张数据并根据结果复制数据

时间:2016-09-14 13:26:39

标签: vba excel-vba excel

我有一张包含2张相同数据的工作簿。两个工作表中的第一列包含分配给项目的编号,但是工作表2包含更多项目

而不是表1.第1页包含与我相关的项目,因此我尝试将表2中的相关数据复制到表1中。

例如:

表1 A栏 20个
53个
120个
500个
1123

表2 A栏 1
2
3
4
5

如果A列中的数字与两个电子表格相匹配,我需要将表格2中的单元格M复制到表格1中的单元格I.我已尝试在其他地方发布了一些不同的解决方案,但是

由于我的数据没有理想地在两张纸之间排序,因此使用像VLookup这样的东西并不顺利。

我相信我需要将两个工作表中的A列信息存储到一个数组并比较那里的数据,我只是不知道如何编写代码来继续

比较工作表1中的单元格,直到它在工作表2中找到匹配项,然后复制数据。

我能得到的任何帮助都将不胜感激。谢谢大家。

我目前的代码:

Sub CopyFromSheet2()
Dim i As Long
Dim j As Long
Dim Range1 As Range
Dim Range2 As Range

Set Range1 = Sheets("Sheet1").Range("A:A")
Set Range2 = Sheets("Sheet2").Range("A:A")

For j = 1 To Range1
For I = 1 To Range2
If Sheets("Sheet1").Cells(i, "A").Value = Sheets("Sheet2").Cells(j, "A").Value Then
Sheets("Sheet1").Cells(i,"I").Value = Sheets("Sheet2").Cells(j, "M").Value
End If
Next i
Next j

End Sub

我目前在For j = 1到Range1行&#34上遇到运行时错误13;类型不匹配"

2 个答案:

答案 0 :(得分:0)

首先要从表1中的第1行到最后一行循环,然后对于每一行,将单元格1的值与工作表2中的每个值进行比较。

将它们相互比较的方法是这样的:

If Sheets("sheet 1").Cells(i, "A").Value = Sheets("sheet 2").Cells(j, "A").Value Then

现在你只需要在此周围放置一个嵌套循环,你就可以了。

将列m复制到i:

Sheets("sheet 1").Cells(i, "I").Value = Sheets("sheet 2").Cells(j, "M").Value

现在尝试一下,如果你遇到错误,可以随时再问一下

答案 1 :(得分:0)

所以我最终将我需要的列合并到1个电子表格中以使事情变得更容易,我在SO上发现了这个问题:Comparing two columns, and returning a specific adjacent cell in Excel这与我试图做的非常相似。公式

 =IFERROR(VLOOKUP(C1, A:B, 2, 0), "")

对我来说很完美,所以我使用它而不是VBA脚本。