Condividi tramite

Cancellare contenuto di una cella con VBA

Anonimo
2015-12-29T16:43:44+00:00

Ciao a tutti, ho un folgio elettronico la cui ultima cella popolata è, ad esempio, la M25 che tra l'altro ha anche un colore di riempimento, ad esempio il giallo.

Con la seguente routine ottenuta dal registratore di macro

Sub Cancella_tutto()

    Cells.Select

    Selection.ClearContents

    Selection.Delete Shift:=xlUp

    Range("A1").Select

End Sub

credevo di riuscire  a cancellare tutto ed invece sembrerebbe di no perché se sullo stesso foglio lancio la seguente routine

Sub verifica_cancellazione()

    Selection.SpecialCells(xlCellTypeLastCell).Select

End Sub

viene selezionata comunque la cella M25.

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
  1. Anonimo
    2015-12-29T17:28:59+00:00

    Ciao Pietro,

    l'uso della proprietà Worksheet.UsedRange constringe Excel a reimpostare l'intervallo che viene riconosciuto come intervallo utilizzato. Dopo aver utilizzato l'istruzione Cells.Clear, l'uso della proprietà Worksheet.UsedRange resetta l'ultima cella utilizzata alla cella A1.

    Nota, tuttavia, che il metodo Cells.ClearContents cancella solo il contenuto ma non la formattazione; quindi si dovrebbe utilizzare il metodo Cells.Clear al fine di eliminare queste celle dal campo di applicazione del metodo SpecialCells.

    ===

    Regards,

    Norman

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-12-29T17:02:22+00:00

    Ciao Pietro,

    Prova:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub Cancella_tutto()

        With ActiveSheet

            .Cells.Clear

            .UsedRange

        End With

    End Sub

    '<<========= 

    ===

    Regards,

    Norman

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2015-12-29T17:26:34+00:00

    Questa pulisce tutte le celle utilizzate nel foglio attivo:

    Public Sub m()

        With ActiveSheet.UsedRange

            .Cells.Clear

        End With

    End Sub

    Questa invece pulisce tutte le celle attigue a quella indicata (qui A1):

    Public Sub m()

        With ActiveSheet.Range("A1").CurrentRegion

            .Cells.Clear

        End With

    End Sub

    0 commenti Nessun commento
  3. Anonimo
    2015-12-29T17:08:06+00:00

    Grazie!

    ovviamente funziona, ma non capisco il perché di

    .UsedRange

    0 commenti Nessun commento
  4. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni