Metodo Find



  • Metodo Find
    di Lucas87 data: 12/03/2014 09:01:07

    Ciao a tutti.
    Ho un problema nell'utilizzo del metodo find.
    Dall'help VBA:

    "Le impostazioni di LookIn, LookAt, SearchOrder e MatchByte vengono salvate ogni volta che si utilizza questo metodo"

    Significa che se viene impostato un valore da codice, questo rimane salvato/selezionato nella finestra di dialogo della ricerca anche dopo l'utilizzo.
    Es.
    Imposto LookAt:=xlWhole, ovvero è come se spuntassi "Confronta intero contenuto della cella", cioè se cerco "ombre" non considera "OMBREllo".
    A questo punto se vado a fare una ricerca manualmente oppure utilizzo il codice senza specificare il parametro LookAt (e voglio che mi venga indicato anche "ombrello"), comunque mantiene l'impostazione e quindi viene falsata la ricerca.

    Esiste quindi un sistema per riportare alla situazione standard?
    L'unica soluzione che mi viene in mente è inserire prima di end sub una riga di codice dove faccio la ricerca di un valore a caso andando a impostare ogni parametro con la configurazione iniziale.
     
    Set r = Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False)



  • di lepat (utente non iscritto) data: 12/03/2014 09:30:58

    cito dalla guida in linea
    Le impostazioni di LookIn, LookAt, SearchOrder e MatchByte vengono salvate ogni volta che si utilizza questo metodo. Se non si specificano valori per questi argomenti quando si richiama il metodo la volta successiva, verranno utilizzati i valori salvati. L'impostazione di questi argomenti comporta la modifica delle impostazioni nella finestra di dialogo Trova. Quest'ultima modifica nella finestra di dialogo Trova comporta a sua volta la modifica dei valori utilizzati se si omettono gli argomenti. Per evitare problemi, impostare questi argomenti esplicitamente ogni volta che si utilizza questo metodo.




  • di Lucas87 data: 12/03/2014 09:43:33

    Appunto....
    Ma se imposto un parametro da codice e poi vado a fare una ricerca manualmente (in un altro momento e su un altro file) il parametro rimane comunque selezionato.
    Il rischio è che venga fatta una ricerca non corretta perchè non ci si accorge che il parametro è flaggato. Per questo motivo mi serve avere un sistema che riporti le impostazioni di ricerca allo stato iniziale.



  • di Vecchio Frac data: 12/03/2014 18:29:50

    Non credo che ci sia un "find reset" via codice.
    Bisognerà crearselo con un find fittizio con i parametri resettati.
    Si può anche utilizzare "Application.FindFormat.Clear" e "Application.ReplaceFormat.Clear" per resettare almeno i formati.