[英]Search for same values in sheet1 and sheet2 and copy the values from sheet1 to sheet2
我曾经和excel一起工作过,但是在VBA上却不是很好,所以我需要帮助来制作一个宏,但我无法让录制宏起作用:(
我有2张纸(Sheet1和Sheet2)的Excel文件。
我想将工作表Sheet2(第A列)中的文本与工作表1(第B列)中的文本进行比较,如果它在两个工作表中都找到相同的文本,那么我是否希望宏将工作表1中的A,B,C和D列复制到B列中,图纸2中的C,D和E。
在工作表1中,我有6000多行,所以我不想手动执行此操作或在excel中执行公式,我想要一个可以为我执行此操作的宏。
床单上有标题,有人可以帮我吗?
对于您要做什么,我还不太清楚。 这是我的解释:假设,对于工作表1的X行A列中的值-如果您在工作表2的Y行B列中找到了对应的值-您想从工作表1复制X行中属于的单元格到ABCD列,并将它们粘贴到Y行BCD E列的工作表2上。
如果正确,请尝试以下操作:
Sub copyCells()
Dim wb As Workbook, firstWs As Worksheet, secondWs As Worksheet
Dim matchIndex As Integer
Set wb = ThisWorkbook
Set firstWs = wb.Worksheets(1)
Set secondWs = wb.Worksheets(2)
Application.ScreenUpdating = False
' We'll start at i=2 to account for the header
For i = 2 To firstWs.Range("A2:A6000").Rows.count
On Error Resume Next
' MATCH will find the row number in sheet 2 - change the range specifications as needed
matchIndex = Application.WorksheetFunction.Match(firstWs.Range("A" & i), secondWs.Range("B2:B6000"), 0)
Err.Clear
On Error GoTo 0
' MATCH will throw an error if it finds no results.
' Hence: if matchindex contains an error, do nothing.
' But if it doesn't contain an error, it must contain a row number - so we can proceed.
If Not Application.WorksheetFunction.IsNA(matchIndex) Then
secondWs.Range("B" & matchIndex).Value = firstWs.Range("A" & i).Value
secondWs.Range("C" & matchIndex).Value = firstWs.Range("B" & i).Value
secondWs.Range("D" & matchIndex).Value = firstWs.Range("C" & i).Value
secondWs.Range("E" & matchIndex).Value = firstWs.Range("D" & i).Value
End If
Next i
Application.ScreenUpdating = True
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.