Sommario:
Video: Come proteggere singole celle o intervalli di un foglio di lavoro - Excel Facile 2024
A volte, è possibile eliminare tutto tranne il foglio di lavoro attivo in una cartella di lavoro di Excel. In queste situazioni, è possibile utilizzare la seguente macro.
Come funziona la macro
La macro qui scorre attraverso i fogli di lavoro, facendo corrispondere ciascun nome del foglio di lavoro al nome del foglio attivo. Ogni volta che la macro si ripete, cancella qualsiasi foglio di lavoro non corrispondente. Notare l'utilizzo della proprietà DisplayAlerts nel passaggio 4. Ciò disattiva efficacemente gli avvisi di Excel in modo da non dover confermare ogni eliminazione.
Sub Macro1 () 'Step 1: Dichiara le tue variabili Dim ws As Worksheet' Step 2: Inizia a scorrere tutti i fogli di lavoro per ogni ws in ThisWorkbook. Passo 3 dei fogli di lavoro: controlla ciascun nome del foglio di lavoro Se ws. Nome ThisWorkbook. Foglio attivo. Nome Poi 'Passaggio 4: Disattiva gli avvisi ed elimina Applicazione. DisplayAlerts = False ws. Elimina applicazione. DisplayAlerts = True End If 'Passaggio 5: Loop al prossimo foglio di lavoro Next ws End Sub
La macro prima dichiara un oggetto chiamato ws. Questo passaggio crea un contenitore di memoria per ogni foglio di lavoro attraversato.
Nel passaggio 2, la macro inizia a ripetere, dicendo a Excel che valuterà tutti i fogli di lavoro in questa cartella di lavoro. C'è una differenza tra ThisWorkbook e ActiveWorkbook. L'oggetto ThisWorkBook fa riferimento alla cartella di lavoro che contiene il codice. L'oggetto ActiveWorkBook fa riferimento alla cartella di lavoro attualmente attiva. Spesso restituiscono lo stesso oggetto, ma se la cartella di lavoro che esegue il codice non è la cartella di lavoro attiva, restituiscono oggetti diversi. In questo caso, non si vuole rischiare di cancellare fogli in altre cartelle di lavoro, quindi si utilizza ThisWorkBook.
Nel passaggio 3, la macro confronta semplicemente il nome del foglio attivo con il foglio attualmente in loop.
Al punto 4, se i nomi dei fogli sono diversi, la macro elimina il foglio. Come accennato, si utilizza DisplayAlerts per sopprimere eventuali controlli di conferma da Excel. Se vuoi essere avvisato prima di cancellare i fogli, puoi omettere l'Applicazione. DisplayAlerts = False. L'omissione dell'istruzione DisplayAlerts garantisce che venga visualizzato il messaggio, consentendo di annullare la decisione di eliminare i fogli di lavoro.
Nel passaggio 5, la macro torna indietro per ottenere il foglio successivo. Dopo aver valutato tutti i fogli, la macro termina.
Ometti l'istruzione Display-Alerts per visualizzare i messaggi di avviso.Come utilizzare la macro
Per implementare questa macro, è possibile copiarla e incollarla in un modulo standard:
-
Attiva Visual Basic Editor premendo Alt + F11.
-
Fare clic con il pulsante destro del mouse sul nome del progetto / cartella di lavoro nella finestra del progetto.
-
Scegli Inserisci → Modulo.
-
Digita o incolla il codice nel modulo appena creato.
Quando si utilizza ThisWorkbook anziché ActiveWorkbook in una macro, non è possibile eseguire la macro dalla cartella di lavoro macro personale. Perché? Perché ThisWorkbook farebbe riferimento alla cartella di lavoro macro personale, non alla cartella di lavoro a cui dovrebbe applicare la macro.