I've got the below to copy data based on two variables to the appropriate row in another sheet. It works (HOORAY!). However what I'm struggling to get my head around is the if logic I have used. I understand as it saying "If we find both cells, we redefine the Found to be nothing in order to end the loop". However as I now have set Found to Nothing, how is the code then able to find the address previously stored in Found and paste the data to it?
Sub copy_transpose()    
    Dim rng_source As Range
    Dim Found As Range, Firstfound As String
    Dim rngSearch As Range
    Dim Criteria As Variant
    
    Set rng_source = ThisWorkbook.Sheets("KPI").Range("H6:H100")
    Set rngSearch = Sheets("Table").Range("A:A")
    
    Criteria = Sheets("KPI").Range("C2:D2").Value
    
    Set Found = rngSearch.Find(What:=Criteria(1, 1), _
                                   LookIn:=xlValues, _
                                   LookAt:=xlWhole, _
                                   SearchOrder:=xlByRows, _
                                   SearchDirection:=xlNext, _
                                   MatchCase:=False)
            
    If Not Found Is Nothing Then   
        Firstfound = Found.Address
            
        Do
            If Found.EntireRow.Range("B2").Value = Criteria(1, 2) Then Exit Do 'Match found
            Set Found = rngSearch.FindNext(After:=Found)
            If Found.Address = Firstfound Then Set Found = Nothing       
        Loop Until Found Is Nothing 
    End If
        
    If Not Found Is Nothing Then
        Application.Goto Found
        rng_source.Copy
        Sheets("Table").Range(found.Offset(0, 1), found.Offset(0, 7)).PasteSpecial Transpose:=True   
    Else        
        MsgBox ("Error")
    End If
End Sub
