2014-11-14 100 views
0

我是vba的新手,需要根据匹配值找到在工作表之间复制某些单元格的方法。在工作表1中,列A是缩写名称的列表。我需要在任何比赛中搜索表2,D栏。如果找到匹配项,请复制工作表2的A,B和C中的单元格,并将它们粘贴到工作表1中的相应位置。vba当两列的值匹配时复制特定单元格

+0

1)记录宏,2)查找功能。谷歌这两个,你可能没有时间完成 – Alex 2014-11-14 15:46:04

+0

我不认为我可以只记录一个宏,因为有数百个单独的匹配值,而不仅仅是我正在寻找的单个值。我不太熟悉vlookup函数。我一直在尝试学习vba,经常发现我可以修改的代码来完成我需要的功能,但这仍然让我无法理解。 – 2014-11-14 16:09:36

回答

0

我也相信最简单的方法是使用vlookup。 可能会更快... 如果你喜欢,你可以使用这样的东西。 虽然没有检查。

Sub CopyBasedonSheet1() 

Dim i As Long 
Dim j As Long 
Sheet1LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 
Sheet2LastRow = Worksheets("Sheet2").Range("D" & Rows.Count).End(xlUp).Row 

    For j = 1 To Sheet1LastRow 
     For i = 1 To Sheet2LastRow 
      If Worksheets("Sheet1").Cells(j, 1).Value = Worksheets("Sheet2").Cells(i, 4).Value Then 
       Worksheets("Sheet1").Cells(j, 2).Value = Worksheets("Sheet2").Cells(i, 1).Value 
       Worksheets("Sheet1").Cells(j, 3).Value = Worksheets("Sheet2").Cells(i, 2).Value 
       Worksheets("Sheet1").Cells(j, 4).Value = Worksheets("Sheet2").Cells(i, 3).Value 
      Else 
      End If 
    Next i 
Next j 
End Sub 
+0

谢谢!这工作完美,比我想要的更简单。 – 2014-11-14 17:19:56

+0

没问题,我很高兴它有帮助。 – Golemic 2014-11-14 17:22:34

相关问题