VBA 根据匹配的 ID 将值从一个工作表复制并粘贴到另一个工作表

问题描述 投票:0回答:1

所以,我有这个包含所有 ID 的 Worksheet1 和只包含几个 ID 的 Worksheet2。我的代码能够根据匹配的 ID 匹配和粘贴值,但它在匹配时不会查看整个值。例如,在工作表 2 中,我的 ID 为 132,因此在工作表 1 中,它会将数据粘贴到编号为 132 的行中,但也会将其粘贴到 ID 为 1、3、2、13、32 等的行中。我该如何解决这个问题它只会将数据粘贴到正确的位置。

Set lkp = ws_Worksheet2.Range(ws_Worksheet2.Cells(6, 2), ws_Worksheet2.Cells(1235, 2).End(xlUp))

Set rng1 = ws_Worksheet1.Range(ws_Worksheet1.Cells(2, 1), ws_Worksheet1.Cells(1235, 1).End(xlUp))
    
For Each cll In lkp.Rows
       
  On Error Resume Next
        
  temp_var = cll.Value
        
  Set fnd = rng1.Find(cll.Value)
        
  On Error GoTo 0
        
  If Not fnd Is Nothing Then
           
     cll.Offset(, 10).Value = fnd.Offset(, 1).Value
            
     cll.Offset(, 17).Value = fnd.Offset(, 2).Value
            
     cll.Offset(, 24).Value = fnd.Offset(, 3).Value
            
     cll.Offset(, 25).Value = fnd.Offset(, 4).Value
            
     cll.Offset(, 28).Value = fnd.Offset(, 8).Value
            
     cll.Offset(, 21).Value = fnd.Offset(, 9).Value
        
  End If
    
Next cll
excel vba lookup
1个回答
0
投票

尝试在您的查找参数 LookAt 中使用 xlWhole。它应该只找到 132,而不是 ID 1、3、2、13、32。

Set fnd = rng1.Find(What:=cll.Value, LookAt:=xlWhole)
© www.soinside.com 2019 - 2024. All rights reserved.