Oggi mi son trovato a dover cancellare da un foglio excel con 25.000 record una speficica parola. In una colonna, infatti, oltre ad una data che mi è utile per un'analisi successiva , c'è la parola ASD.
Ad esempio:
11-04-1979 ASD
11-05-1979 ASD
11-06-1979 ASD
...
11-05-1979 ASD
11-06-1979 ASD
...
L'alternativa ad utilizzare VBA è il classico Trova e Sostituisci, dove nel campo Trova mettete "ASD" e in sostituisci lasciate vuoto.
Siccome devo automatizzare altre cose deciso di compilare una routine anche per questa piccola banalità.Eccola:
Sub togliasd()
Sheets(1).Activate
Cells.Replace What:="ASD", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
Vediamola nel dettaglio passo passo:
- Sub togliasd() -> inizializzo la routine e la chiamo "togliasd".
- Sheets(1).Activate -> attiva il foglio di calcolo che mi interessa, il primo in ordine di apparizione, in alternativa potete mettere il nome che avete dato allo sheet al poste del numero 1.
- Cell.Replace -> richiama la funzione di sostituzione
- What:= -> Il parametro che indica cosa volete sostituire. Il cosa deve essere indicato dopo l'uguale e tra virgolette "ASD".
- Replacement:= -> Il parametro che indica con che cosa volete sostituire. Il con che cosa, sempre dopo l'uguale e sempre tra virgolette, in questo caso è nulla, quindi tra le "" non scrivo nulla.
- SearchOrder :=xlByRows -> Search order indica come deve procedere la ricerca, se riga per riga o (xlByRows) colonna per colonna (xlByColumns). In questo caso riga per riga. NB (il trattino basso _ serve per andare a capo)
- MatchCase:=False -> indica se la ricerca deve essere "case sensitive" o meno. Ossia se ritenga che maiuscole e minuscole siano la stessa cosa o meno.
- SearchFormat:=False -> è un ulteriore attributo di ricerca. In particolare si può selezionare il formato della cella...
- ReplaceFormat:=False ->... e sostituirlo con quello messo qui.
- End Sub -> conlude la routine.
NB:
Per i perfezionisti attenti ai cicli di clock...e per chi vuole sostituire una specifica parola solo in una colonna o in una selezione specifica, aggiungete dopo Sheets(1).Activate:
Range("A1:R99").Select -> selezionare il rettangolone di celle da A1 a R99
oppure, nel caso in cui vogliate selezionare una o più colonne...
Columns("x:y").Select -> con x e y sostituite il range di colonne che volete selezionare es: B:Z" e per una colonna sola B:B
ari ciao :v
Ciao, mi chiamo Marco e avrei una domanda: E nel caso in cui volessi sostituire in una intera cartella di lavoro? ho notato che il codice inserito da te funziona anche nella cartella di lavoro solo se imposto prima e MANUALMENTE i criteri di ricerca. Altrimenti mi va a cercare e sostituire solo nel foglio. non esiste una stringa che riporti anche la destinazione cosi che non bisogna farlo manualmente?
RispondiElimina