【发布时间】:2018-07-17 13:54:59
【问题描述】:
我有 2 张工作表,我想比较工作表 1 中名字和姓氏(A 列和 B 列)的数据是否在工作表 2(也是 A 列和 B 列)中找到,其中名字在列中A 和 B 列中的姓氏。如果在 sheet2 中找到 sheet1 的名字和姓氏,并且如果该行的工作表 2(E 列)中的 ID 号等于 2,那么我想复制客户从 sheet2 到 Sheet 1 的 P 列的详细信息行(D 列)。
我觉得下面的代码应该可以工作,但它并没有为我将客户数据粘贴到 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
【问题讨论】:
-
否,因为我想将表 2 中的 E 列中的数据复制到表 1 中的 P 列,所以我将
revenue设置为变量到我要粘贴数据的位置 -
@KPaul 没问题,我可以想象如果没有数据集就很难进行可视化。我确信这也可以按照您的建议使用自定义函数来完成,尽管我想深入了解这个宏的问题,因为它看起来应该可以工作,但它让我发疯。
-
见下面@Jarom 的回复。