Excel VBA – 在工作表之间传输数据

我正试图比较一个工作簿中的两张纸。 我需要将第一个工作表的A列中的值与工作表2的A列匹配,如果find匹配的值,则将工作表2的E列中的值复制并粘贴到工作表1的E列中。例如:

Sheet 1: ABCDE Sheet 2: ABCDE k 9 b 3 kd 3 d 6 j 2 d 4 mh 4 g 3 s 3 u 9 je 8 a 9 i 4 s 6 si 9 t 7 o 7 n 8 lb 10 s 9 ic 4 p 8 ol 0 n 9 

会成为

 Sheet 1: ABCDE k 9 b 3 6 j 2 d 4 9 s 3 u 9 7 i 4 s 6 8 o 7 n 8 9 

我目前正在使用的代码是:Sub mergeCategoryValues()Dim lngRow As Long

 With ActiveSheet lngRow = .Cells(65536, 1).End(xlUp).Row .Cells(1).CurrentRegion.Sort key1:=.Cells(1), Header:=xlYes Do If .Cells(lngRow, 1) = Sheets("Sheet2").Cells(lngRow, 1) Then .Cells(lngRow, 5) = Sheets("Sheet2").Cells(lngRow, 5) End If lngRow = lngRow - 1 Loop Until lngRow < 2 End With End Sub 

无论大小写,我都需要重复。 这可能吗?

任何帮助表示赞赏。

先谢谢你。

我已经制定了一个VBA代码:

 Sub sof20355637MergeCategoryValues() Dim i As Long, i2 As Long, lngRow As Long, lngRow2 As Long Dim strKey As String Dim wks1, wks2 As Worksheet Dim objRange2 Set wks1 = Sheets("Sheet1") Set wks2 = Sheets("Sheet2") ' get mximum rows of each sheet: lngRow = wks1.Cells(wks1.Rows.Count, 1).End(xlUp).Row lngRow2 = wks2.Cells(wks1.Rows.Count, 1).End(xlUp).Row ' we loop on the first column of sheet1: For i = 1 To lngRow strKey = wks1.Range("A" & i) Set objRange2 = wks2.Range("A:A").Find(strKey, Range("A1"), SearchDirection:=xlPrevious) If (Not objRange2 Is Nothing) Then i2 = objRange2.Row wks1.Range("E" & i) = wks2.Range("E" & i2) End If Next Set objRange2 = Nothing Set wks1 = Nothing Set wks2 = Nothing End Sub 

有了一些图片:

Sheet1:Sheet2:

在这里输入图像说明在这里输入图像说明

合并Sheet1:

在这里输入图像描述

假设表1中的k在A1中,则在表1的E1中:

 =VLOOKUP(A1,'Sheet 2'!A:E,5,0) 

并复制下来,可以服务,虽然不是VBA。