我有一张包含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;类型不匹配"
答案 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脚本。