This question already has an answer here:
Not very experienced with coding VBA, but I would appreciate any help this matter. The code below runs fine; however logically, I feel like it could be written better. Anyone have suggestions?
Sub CopyValues()
'Declare variables
Dim Sourcedataws As Worksheet
Dim WStotransfer As Worksheet
'Declare counter variables
Dim i As Integer
Dim lastrow As Long
'Declare sheet variables
Set Sourcedataws = ThisWorkbook.Sheets("Source Data")
Set WStotransferws = ThisWorkbook.Sheets("WStotransfer")
lastrow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 2 To lastrow
If Sourcedataws.Range("AA" & i).Value = "Condition" Then
WStotransferws.Range("C18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("D18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("E18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("F18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("G18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("H18") = Sourcedataws.Range("A" & i).Value
ActiveCell.Offset(0, 1).Select
WStotransferws.Range("I18") = Sourcedataws.Range("A" & i).Value
End If
Next
End Sub
Try: