Skip to main content

Come spostare rapidamente gli elementi tra due caselle di riepilogo in Excel?

Author: Sun Last Modified: 2025-05-29

Hai mai provato a spostare gli elementi da una casella di riepilogo a un'altra, come mostrato nello screenshot sottostante? Qui parlerò di questa operazione in Excel.

a screenshot showing the listboxes before moving items a screenshot of an arrow a screenshot showing the listboxes after moving items

Sposta elementi tra caselle di riepilogo


Sposta elementi tra caselle di riepilogo

Non esiste una funzione incorporata che possa aiutarti a completare il lavoro, ma ho un codice VBA che può fare al caso tuo.

1. Innanzitutto, devi creare un elenco di dati che verrà visualizzato come elementi nelle caselle di riepilogo in un nuovo foglio di lavoro chiamato Admin_Lists.

a screenshot of the source data

2. Quindi seleziona questi dati e vai alla casella Nome per assegnargli un nome : ItemList. Vedi screenshot:

a screenshot of naming the source data in the Name box

3. Poi, in un foglio che conterrà le due caselle di riepilogo, clicca su Sviluppatore > Inserisci > Casella di riepilogo (Controllo ActiveX) e disegna due caselle di riepilogo. Vedi screenshot:

a screenshot of selecting the List Box control under the Developer tab a screenshot of the right arrow a screenshot showing two created list boxes

Se la scheda Sviluppatore è nascosta nella barra multifunzione, Come mostrare/visualizzare la scheda Sviluppatore nella barra multifunzione di Excel 2007/2010/2013? Questo articolo ti spiegherà come mostrarla.

4. Quindi fai clic su Sviluppatore > Inserisci > Pulsante di comando (Controllo ActiveX) e disegna quattro pulsanti tra le due caselle di riepilogo. Vedi screenshot:

a screenshot of selecting command button control a screenshot of a right arrow 1 a screenshot showing the created command buttons

Ora rinomina i quattro pulsanti di comando con nuovi nomi.

5. Seleziona il primo pulsante di comando, fai clic su Proprietà, e nel riquadro Proprietà, dagli il nome BTN_moveAllRight, e digita >> nella casella di testo accanto a Didascalia. Vedi screenshot:

a screenshot showing how to changing the properties of the command button

6. Ripeti il passaggio 5 per rinominare gli ultimi tre pulsanti di comando con i nomi seguenti e digita anche frecce diverse nelle didascalie. Vedi screenshot:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

a screenshot of the second command button after changing the properties a screenshot of the third command button after changing the properties a screenshot of the fourth command button after changing the properties

7. Fai clic con il tasto destro sul nome del foglio che contiene le caselle di riepilogo e i pulsanti di comando, e seleziona Visualizza codice dal menu contestuale. Vedi screenshot:

a screenshot of opening the VBA code editor

8. Copia e incolla il seguente codice macro nello script Modulo, quindi salva il codice e chiudi la finestra Microsoft Visual Basic for Applications. Vedi screenshot:

VBA: Sposta elementi tra due caselle di riepilogo

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

a screenshot showing how to use the VBA code

9. Quindi vai a un altro foglio, poi torna al foglio che contiene le caselle di riepilogo; ora puoi vedere che i dati dell'elenco sono stati inseriti nella prima casella di riepilogo. Clicca sui pulsanti di comando per spostare gli elementi tra le due caselle di riepilogo.

a screenshot showing the source data in one list box after running the VBA code

Sposta selezione

a screenshot of moving items from one list box to another one by one a screenshot of the arrow a screenshot showing two items have been moved to the right list box

Sposta tutto

a screenshot of marking which command button can be used to move all items from one list to another at the same time a screenshot of arrow 2 a screenshot showing all items are moved from one list box to another at the same time

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!