giovedì 18 settembre 2014

Metodo Find applicato a un Range di Excel

Bene.
Dopo essere impazzito a costruire una funzione che trovasse l'occorrenza di una stringa all'interno di una tabella di celle, la quale lo faceva egregiamente, sia pure, come c'era da aspettarsi, alla velocità di una tartaruga asmatica con l'artrosi deformante, sono andato a cercare, e a trovare, funzioni di Excel che soddisfano parimenti alla bisogna, ma alla velocità di Speedy Gonzales è dir poco!

Ovviamente, dal momento che anche i rutti e le scorregge di Excel hanno un corrispettivo in codice VBA, si può fare tutto con del codice.

E procedo.
Ho una tabella situata in un punto imprecisato al centro del foglio di lavoro di Excel, fatta così:



E adesso voglio ritrovare Luciano Stronzini, nel foglio, e sostituire al numeretto la frase "ECCOTI QUA".
Come farò?
Così:
Sub trova()
    Dim r As Range
    Set r = ActiveSheet.Cells
    Set ricerca = r.Find("Luciano Stronzini")
    Cells(ricerca.Row, ricerca.Column + 1).FormulaR1C1 = "ECCOTI QUA"
End Sub
Ed ecco la nuova tabella (ricopiata pari pari):



Il metodo Find, applicato a un Range, dà origine a un altro range del quale possiamo poi determinare la fila e la colonna per agire di conseguenza su altre celle che ne condividano uno di questi due valori.

E le costruzioni cervellotiche e lentissime che ho costruito prima vengono liquidate come semplici esercizi mentali!

Nessun commento:

Posta un commento