Option Explicit
Sub test()
Dim c As Range, p As String
With Workbooks("B.xlsx").Sheets("1")
With .Range("A1", .Range("A65536").End(xlUp))
Set c = .Find("joy", , xlValues, xlWhole, , , False)
If Not c Is Nothing Then
p = c.Address
Do
With Workbooks("A.xlsx").Sheets("1")
.Range("B65536").End(xlUp)(2).Value = c.Offset(0, 5)
.Range("C65536").End(xlUp)(2).Value = c.Offset(0, 7)
.Range("D65536").End(xlUp)(2).Value = c.Offset(0, 3)
.Range("E65536").End(xlUp)(2).Value = c.Offset(0, 1)
End With
Set c = .FindNext(c)
Loop While c.Address <> p
End If
End With
End With
End Sub