Rimuovere celle contenenti termini specifici

Anna ha un foglio di lavoro che ha migliaia di celle contenenti vari termini. Ha bisogno di eliminare un gran numero di quei termini e le celle in cui si trovano. Ad esempio, potrebbe essere necessario eliminare tutte le celle contenenti termini come “google”, “youtube”, “linkedin” e numerosi altri termini. Anna sa che può fare una ricerca e sostituire ciascuno di questi termini, ma è piuttosto noioso. Si chiede se c’è un modo per identificare tutti i termini da rimuovere e quindi fare in modo che Excel li rimuova da quelle migliaia di celle.

Se hai bisogno di fare questo tipo di cose frequentemente, la soluzione migliore è usare una macro. Il trucco risiede in come specificare, nella macro, esattamente cosa vuoi sostituire. Un modo è inserire le informazioni in un array, come nell’esempio seguente:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

I termini ricercati vengono inseriti nell’array vArray, quindi ogni membro dell’array viene utilizzato nell’elaborazione. Il metodo Replace viene utilizzato con l’oggetto Selection per eseguire le sostituzioni. La macro non rimuove le celle; rimuove semplicemente qualsiasi testo che corrisponde al termine. Durante la sostituzione, la ricerca non fa distinzione tra maiuscole e minuscole, in modo che “google” corrisponda a “Google”.

Poiché viene utilizzato l’oggetto Selection, è importante assicurarsi di selezionare l’elenco che si desidera elaborare prima di eseguire effettivamente la macro. In caso contrario, non viene sostituito nulla.

Se preferisci, puoi creare una macro che estrae i termini da un intervallo di celle nella cartella di lavoro.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Questa macro estrae i termini di ricerca dall’intervallo D1:D9 e quindi ti chiede di scegliere l’intervallo di celle che desideri elaborare. Utilizza lo stesso metodo Replace utilizzato nella macro precedente, tranne per il fatto che specifica che il parametro LookAt deve essere xlWhole. Ciò significa che il termine di ricerca deve corrispondere all’intera cella per essere rimosso. Tuttavia, i termini sono ancora considerati senza distinzione tra maiuscole e minuscole.

Nota che gli esempi finora descritti non eliminano effettivamente alcuna cella; eliminano semplicemente il contenuto delle celle. In molti casi questo è esattamente quello che vuoi perché non vuoi modificare il layout del foglio di lavoro. Se vuoi davvero eliminare le celle, non dovresti utilizzare il ​​metodo Replace. Invece, puoi attivare il confronto del testo e usare l’operatore Like per vedere se c’è una corrispondenza.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Tieni presente che i termini di ricerca vengono ancora estratti dall’intervallo D1:D9 e ti viene comunque chiesto l’intervallo che desideri elaborare. Da lì, però, il processo è diverso: la macro esamina ogni cella e se c’è una corrispondenza parziale, la cella viene eliminata.

Affinché questa variazione della macro funzioni correttamente, è necessario includere la riga Option Compare Text al di fuori della procedura stessa. Questo indica a VBA di abilitare le parole chiave (come Like) che consentono il confronto del testo.

Tags: , , , , , , , , , , , , , ,

Ti è stato utile?