cwb1021
10-10-2018, 10:36 AM
Hello VBA experts,
Its been a long while since i tried using VBA and I'm running in to some problems. Im columns A-E in a spreadsheet and attempting the following:
Columns A,B & D are populated with data. I need to:
1. loop through the values in column D
2. Compare each value in column D to all of the values in column A
3. If there is a match, copy cell B which corresponds to the matching value in column A
4. Paste that value in column E next to the corresponding matching value in column D
If thats not too confusing...
So as an example:
A_B_C_D_E
a_1___r
g_2___a_1
e_3___b
d_4___c
t_5___n
In column D, a match for "a" is found in column A, row 1, and the value in column A, row 2 is pasted to the matching "a" in Column E.
All ranges would need to be dynamic.
I've tried piecing this together from examples i've found with not luck so far. Below is what i've been working with. I know its incorrect, and results in copying all of the values in column A to column E.
Sub compareAndCopy()
Dim lastRowA As Long
Dim lastRowD As Long
Dim lastRowE As Long
Dim i As Integer
Dim j As Integer
Application.ScreenUpdating = False
lastRowD = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "D").End(xlUp).Row
lastRowA = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row
lastRowE = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "E").End(xlUp).Row
For i = 1 To lastRowD
For j = 1 To lastRowA
If Sheets("Sheet1").Cells(i, 1).Value = Sheets("Sheet1").Cells(j, 1).Value Then
Sheets("Sheet1").Cells(i, 1).Offset(, 1).Copy Destination:=Sheets("Sheet1").Cells(i, 1).Offset(, 4)
Exit For
Exit For
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
I've attached the spreadsheet as well.
Any help would be greatly appreciated!
Thanks,
Chris23006
Its been a long while since i tried using VBA and I'm running in to some problems. Im columns A-E in a spreadsheet and attempting the following:
Columns A,B & D are populated with data. I need to:
1. loop through the values in column D
2. Compare each value in column D to all of the values in column A
3. If there is a match, copy cell B which corresponds to the matching value in column A
4. Paste that value in column E next to the corresponding matching value in column D
If thats not too confusing...
So as an example:
A_B_C_D_E
a_1___r
g_2___a_1
e_3___b
d_4___c
t_5___n
In column D, a match for "a" is found in column A, row 1, and the value in column A, row 2 is pasted to the matching "a" in Column E.
All ranges would need to be dynamic.
I've tried piecing this together from examples i've found with not luck so far. Below is what i've been working with. I know its incorrect, and results in copying all of the values in column A to column E.
Sub compareAndCopy()
Dim lastRowA As Long
Dim lastRowD As Long
Dim lastRowE As Long
Dim i As Integer
Dim j As Integer
Application.ScreenUpdating = False
lastRowD = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "D").End(xlUp).Row
lastRowA = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row
lastRowE = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, "E").End(xlUp).Row
For i = 1 To lastRowD
For j = 1 To lastRowA
If Sheets("Sheet1").Cells(i, 1).Value = Sheets("Sheet1").Cells(j, 1).Value Then
Sheets("Sheet1").Cells(i, 1).Offset(, 1).Copy Destination:=Sheets("Sheet1").Cells(i, 1).Offset(, 4)
Exit For
Exit For
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
I've attached the spreadsheet as well.
Any help would be greatly appreciated!
Thanks,
Chris23006