Hi

Copy the headings from List!A3:O3 and put them in Search!A9:O9.

Put in your selection (either B4 or B5) then run
Sub aaa()
  NAMEarr = Array("Name of Director / Shareholder 1 ", "Name of Director / Shareholder 2", "Name of New Directorship", "Guarantor 1", "Guarantor 2", "Witness")
  NRICarr = Array("Director's NRIC", "NRIC of New Directorship", "NRIC of Guarantor 1", "NRIC of Guarantor 2", "Witness NRIC")
  With Sheets("List")
    Set datarng = .Range("A3:O" & .Cells(Rows.Count, 1).End(xlUp).Row)
  End With
  If Len(Cells(4, 2)) > 0 Then
    Range("D1:I1").Value = NAMEarr
    For i = 1 To 6
      Range("C1").Offset(i, i).Value = Cells(4, 2).Value
    Next i
    datarng.AdvancedFilter Action:=xlFilterCopy, criteriarange:=Range("D1:I7"), copytorange:=Range("A9:O9")
  Else
    Range("D1:H1").Value = NRICarr
    For i = 1 To 5
      Range("C1").Offset(i, i).Value = Cells(5, 2).Value
    Next i
    datarng.AdvancedFilter Action:=xlFilterCopy, criteriarange:=Range("D1:H6"), copytorange:=Range("A9:O9")
  End If
  
  Range("D1:I7").ClearContents
  
End Sub
HTH

rylo