我有两张纸,我想比较一张纸上名字和姓氏(列A和B)中的数据是否在纸张2(也是列A和B),其中第一个名称在列A中并且姓氏在列B中。如果在sheet2中找到来自sheet1的姓氏和姓氏,并且如果在第2张(列E)行等于2,那么我想复制客户明细行(列D)从Sheet2到Sheet 1的P列。Excel宏比较两张纸上的数据并将值粘贴在匹配上
我觉得我下面的代码应该可以工作,但它并不粘贴客户资料放入sheet1的P栏中。任何想法为什么?
Sub matchandpaste()
Dim cell, cell2, revenue As Range
Dim wbk As Workbook
Dim sheet1, sheet2 As Worksheet
Dim temp, firstName, lastName As String
Set wbk = ThisWorkbook
Set Sheet1 = wbk.Sheets("Sheet1")
Set sheet2 = wbk.Sheets("Sheet2")
For Each cell In Sheet1.Range("B2:B" & Range("B2").End(xlDown).Row)
lastName = cell.Value
firstName = cell.Offset(0, -1).Value
Set revenue = cell.Offset(0, 14)
For Each cell2 In sheet2.Range("B2:B" & Range("B2").End(xlDown).Row)
If lastName = cell2.Value And firstName = cell2.Offset(0, -1).Value And cell2.Offset(0, 3).Value = 2 Then
revenue = cell2.Offset(0, 2).Value
End If
Next cell2
Next cell
没有,因为我想从塔E中的数据复制在表2,P列在片材1,所以设定'revenue'作为变量的地方,我想要粘贴数据 – Xcelrate
@KPaul没有问题,我可以想象,如果没有数据集就难以可视化。我敢肯定,这也可以按照您的建议使用自定义函数来完成,不过我想用这个宏来解决问题的底部,因为它看起来应该可以工作,但它让我发疯。 – Xcelrate
请参阅下面的@ Jarom的回复。 –