有2个单独的表 - PT_Data和Suspects。每个表都有Emp_Name作为第一列,第二列是可变的。我想将PT_Data中的Emp_Name与Suspects中的Emp_Name匹配,并将相应的值从Suspects表更新为PT_Data表中的B列。
这是我写的代码。
lastrowall = Sheets("Monthly Deals").Range("A1", Sheets("Monthly Deals").Range("A" & Rows.Count).End(xlUp)).Rows.Count
lastrowsuspects = Sheets("Suspects").Range("A1", Sheets("Suspects").Range("A" & Rows.Count).End(xlUp)).Rows.Count
For i = 1 To lastrowall
For j = 1 To lastrowsuspects
'MsgBox Sheets("PT_Data").Range("A" & i).Value
If Sheets("PT_Data").Range("A" & i).Value = Sheets("Suspects").Range("A" & j).Value Then
Sheets("Suspects").Range("B" & j).Copy Destination:=Sheets("PT_Data").Range("B" & i).PasteSpecial
End If
Next j
Next i
然而,当找到匹配时,VB给出"应用程序定义或对象定义错误"。有什么想法吗?
答案 0 :(得分:1)
更改
Sheets("Suspects").Range("B" & j).Copy Destination:=Sheets("PT_Data").Range("B" & i).PasteSpecial
到
'~~> To paste values
Sheets("Suspects").Range("B" & j).Copy
Sheets("PT_Data").Range("B" & i).PasteSpecial xlPasteValues
或粘贴全部使用
Sheets("Suspects").Range("B" & j).Copy _
Destination:=Sheets("PT_Data").Range("B" & i)
顺便说一句,你可以使用公式。 VBA不需要。使用Vlookup
,如下所示。将此公式放在PT_Data
的单元格B1中并将其拖下来。
=VLOOKUP(A1,Suspects!A:B,2,0)