Hi, VBA community!

I tried to find the value of the list in column A in Sheet "Find" by looping through all the other sheets ws. If the value in ws is found (depending on whether the value found in ws is in column I or column M), I then want to populate the values found to the desired columns in Sheet "Find" (columns I to L or columns M to P). I can't seem to find out what went wrong.

I attach the example workbook. I hope to be able to get some help here. I'm using Excel 2003. Thanks in advance!

Sub test()
Dim lastcol As Integer, lastrw As Long, lastrow As Long, i As Long
Dim ws As Worksheet, FindSht As Worksheet, vFind, rFound As Range, rFoundCol As Integer

Set FindSht = Sheets("Find")
FindSht.Range(Cells(2, 2), Cells(6666, 20)).Clear
lastcol = Sheets("Find").Cells.Find("*", SearchOrder:=xlByColumns, LookIn:=xlValues, _
    SearchDirection:=xlPrevious).EntireColumn.Column
lastrw = Sheets("Find").UsedRange.Rows.Count

For i = 2 To lastrw
vFind = FindSht.Cells(i, 1)
    For Each ws In Worksheets
        On Error Resume Next
        lastrow = Cells(Rows.Count, "I").End(xlUp).Row
        If ws.Name <> FindSht Then
            ws.Select

            Set rFound = Cells.Find(what:=vFind, After:=[A1], LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
                If Not rFound Is Nothing Then
                    rFoundCol = rFound.Column
                    If Cells(5, rFoundCol).Value = "FROM" Then
                        FindSht.Cells(i, rFoundCol).Value = rFound
                        FindSht.Cells(i, rFoundCol + 1).Value = rFound.Offset(, 1)
                        FindSht.Cells(i, rFoundCol + 2).Value = rFound.Offset(, 2)
                        FindSht.Cells(i, rFoundCol + 3).Value = rFound.Offset(, 3)
                    ElseIf Cells(5, rFoundCol).Value = "TO" Then
                        FindSht.Cells(i, rFoundCol).Value = rFound
                        FindSht.Cells(i, rFoundCol + 1).Value = rFound.Offset(, 1)
                        FindSht.Cells(i, rFoundCol + 2).Value = rFound.Offset(, 2)
                        FindSht.Cells(i, rFoundCol + 3).Value = rFound.Offset(, 3)
                    End If
                End If
        End If
    Next ws
Next i

Application.ScreenUpdating = True
Sheets("Find").Select
Set FindSht = Nothing
Set rFound = Nothing
End Sub