can any one help me in how to improve below code ;

I want to search for a string inserted in "TextBox1" @ Mainwb within a range of data located in Workbook "officerA" Worksheet "DATA"(A2,G2000), and then paste results found into Workbook "Mainwb" .sheet "MAIN SCREEN" .Range (A5,G500)

I am totally new to VBA and wrote this code quoting from many sources ,all your support is appreciated .

Below is the code used to search within same workbook:

    Sub CommandButton1_Click()
    Dim wb1 As Workbook, Wb2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim strSearch As String
    Dim f As Variant
    Dim fAddress As String
    Dim fRow As Long
    Dim cellA As Variant
    Dim cellB As Variant
   

     Set Wb2 = Workbooks.Open("C:\Users\elhayani\Desktop\development\AML db\OfficerA.xlsx") 
      Set wb1 = Workbooks.Open("C:\Users\elhayani\Desktop\development\AML db\Mainwb.xlsm")
       Set ws2 = wb1.Sheets("MAIN SCREEN").Range("A5:G2000")
       Set ws1 = Wb2.Worksheets("DATA")  
    
    strSearch = TextBox1.Value
    
    ws1.Range("A5:G2000").ClearContents
    Set dmr = Workbooks.Open("C:\Users\aselhayani\Desktop\Excel Reports\OfficerA.xlsx")
    Set dmr = Worksheets("DATA")
    strSearch = InputBox("Please enter T24 ID:", "Search Value")
    
    pasteRowIndex = 5
    
    If strSearch = vbNullString Then
        MsgBox ("User canceled, or did not enter a value.")
        Exit Sub
    End If
    
    With ws1.Range("A2:G2000")
    
        Set f = .Find(strSearch, LookIn:=xlValues)
        If Not f Is Nothing Then
            fAddress = f.Address
            Do
                fRow = f.Row
                cellA = ws2.Cells(fRow, 1).Value
                cellB = ws2.Cells(fRow, 2).Value
                cellC = ws2.Cells(fRow, 3).Value
                cellD = ws2.Cells(fRow, 4).Value
                cellE = ws2.Cells(fRow, 5).Value
                cellF = ws2.Cells(fRow, 6).Value
                cellG = ws2.Cells(fRow, 7).Value
    
                ws1.Cells(pasteRowIndex, 1) = cellA
                ws1.Cells(pasteRowIndex, 2) = cellB
                ws1.Cells(pasteRowIndex, 3) = cellC
                ws1.Cells(pasteRowIndex, 4) = cellD
                ws1.Cells(pasteRowIndex, 5) = cellE
                ws1.Cells(pasteRowIndex, 6) = cellF
                ws1.Cells(pasteRowIndex, 7) = cellG
    
                pasteRowIndex = pasteRowIndex + 1
    
                Set f = .FindNext(f)
    
            Loop While Not f Is Nothing And f.Address <> fAddress
        End If
    End With
    MsgBox "Search Done"
    End Sub

Kind regards