Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub XXXX( )
.
.
.
    Dim str1 As String
    str1 = String(255, Chr(0))
    Dim lngRc As Long
    lngRc = GetSystemDirectory(str1, 255)
    If lngRc > 0 Then str1= Left(str1, lngRc) & ""
If BuscarCopiar("MiFile.aaa", str1 & "FileCopiado.xxx", "C:") Then
        MsgBox "OK"
    Else
        MsgBox "KO"
    End If
.
.
.
End Sub
Public Function BuscarCopiar(ByVal FileName As String, ByVal Destino As String, Optional ByVal Root As String)
'FileName = nombre de archivo pc (sin ruta) a buscar
'Destino = nombre de archivo pc (con ruta) destino
'Root = opcional, carpeta desde la que comenzar a buscar
'Esta función puede tomarse su tiempo, así que paciencia
    Dim sngMouseP As Single
    sngMouseP = Screen.MousePointer
    Screen.MousePointer = 11
    
    On Error GoTo Err_Buscar
    
    Dim strDires() As String, strDir As String
    Dim lng1 As Long, lng2 As Long, lng3 As Long
    Dim lngCta As Long, str1 As String, IND1 As Boolean
    
    If Root = "" Then Root = App.Path
    If Right(Root, 1) <> "" Then Root = Root & ""
    
    ReDim strDires(1)
    strDires(0) = Root
    
BucleDir:
    For lng1 = lng2 To lng3
        Root = strDires(lng1)
        strDir = Dir(Root, vbDirectory)
        Do While strDir <> ""
            If strDir <> "." And strDir <> ".." _
            And (GetAttr(Root & strDir) And vbDirectory) = vbDirectory Then
                lngCta = lngCta + 1
                str1 = Root & strDir & ""
                ReDim Preserve strDires(lngCta)
                strDires(lngCta) = str1
                IND1 = True
           End If
           strDir = Dir
        Loop
    Next lng1
    lng3 = UBound(strDires)
    lng2 = lng1
    If lng2 <= lng3 And IND1 Then GoTo BucleDir
    
    IND1 = False
    
    For lngCta = 0 To UBound(strDires)
        strDir = Dir(strDires(lngCta) & FileName)
        If strDir <> "" Then
            FileName = strDires(lngCta) & FileName
            IND1 = True
            Exit For
        End If
    Next lngCta
    
    If IND1 Then
        FileCopy FileName, Destino
        BuscarCopiar = True
    End If
    
Exit_Buscar:
    Screen.MousePointer = sngMouseP
    Exit Function
   
Err_Buscar:
    MsgBox "(" & Err.Number & ") " & Err.Description _
    , vbCritical, "Error buscar y copiar"
    Resume Exit_Buscar
End Function
Mira, ahí tienes el trabajo hecho. 
No es que hayas pedido que alguien lo hiciera por ti, pero es como si lo hubieses hecho...
Intenta ser más concreto en tus consultas y nunca pretendas obtener de un foro el código que te resuelva tu aplicación. Claro que para mi es mucho más sencillo escribir un ejemplo que intentar explicar el funcionamiento de una instrucción, pero una cosa es escribir un ejemplo y otra resolverte el problema (por eso la gente suele cobrar).  Sobre estos temas se ha hablado mucho en otros posts y prefiero no volver sobre el tema.
En fin... una y no más.
Suerte.