Skip to main content

Come nascondere colonne in tempo reale in base all'input dell'utente in Excel?

Author: Xiaoyang Last Modified: 2025-05-30

Nascondere le colonne in Excel può essere un'attività comune, ma hai mai provato a nasconderle automaticamente in base a valori di input specifici? Ad esempio, quando inserisco il testo “AA” in una cella, la colonna A viene nascosta; quando inserisco “BB,” le colonne B e C vengono nascoste; quando inserisco “CC,” le colonne D ed E vengono nascoste; quando inserisco “DD,” la colonna F viene nascosta, come mostrato nella demo qui sotto. Questo articolo fornirà un codice VBA per risolvere il problema in Excel.

Usa il codice VBA per nascondere o mostrare colonne in tempo reale in base all'input dell'utente

Usa il codice VBA per nascondere o mostrare determinate colonne in base all'input dell'utente


Usa il codice VBA per nascondere o mostrare colonne in tempo reale in base all'input dell'utente

Per nascondere le colonne specifiche in tempo reale in base ai valori di input, applica il seguente codice VBA:

1. Nel foglio di lavoro in cui desideri nascondere le colonne, fai clic con il tasto destro sulla scheda del foglio e poi clicca su "Visualizza Codice" dal menu contestuale, vedi screenshot.

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. Nella finestra aperta "Microsoft Visual Basic for Applications", copia e incolla il seguente codice VBA nella finestra "Foglio (Codice)".

Codice VBA: Nascondi colonne in tempo reale in base all'input dell'utente

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Nota: Nel codice sopra, "K1" è la cella in cui inserisci il testo specifico. Dovresti regolare il testo e i nomi delle colonne per adattarli alle tue esigenze. Inoltre, puoi aggiungere altri nuovi criteri semplicemente aggiungendo gli script seguenti:
  • Caso "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = True

A screenshot of the VBA code window in Excel with code pasted to hide columns based on user input

3. Quindi, chiudi la finestra del codice. Ora, quando inserisci “AA” nella cella K1 e premi il tasto "Invio", la colonna A viene nascosta; quando inserisci “BB” e premi il tasto "Invio", le colonne B e C vengono nascoste, e così via. Se inserisci qualsiasi altro valore o elimini il contenuto, le colonne nascoste verranno visualizzate immediatamente, vedi la demo qui sotto:


Usa il codice VBA per nascondere o mostrare determinate colonne in base all'input dell'utente

In questo esempio, andrò a filtrare un intervallo di dati in base al nome del prodotto inserito. Quando inserisco “Hoodie”, verranno visualizzate solo le informazioni relative a Hoodie e le altre colonne verranno nascoste immediatamente; e quando inserisco “Tutti”, tutte le colonne verranno visualizzate come mostrato nella demo qui sotto:

1. Nel foglio di lavoro in cui desideri nascondere le colonne, fai clic con il tasto destro sulla scheda del foglio e poi clicca su "Visualizza Codice" dal menu contestuale, vedi screenshot:

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. Nella finestra aperta "Microsoft Visual Basic for Applications", copia e incolla il seguente codice VBA nella finestra "Foglio (Codice)".

Codice VBA: Nascondi o mostra colonne per filtrare i dati in base all'input dell'utente

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Nota: Nel codice sopra, "K1" è la cella in cui inserisci il testo specifico, "B1:H1" sono le intestazioni di riga che contengono i nomi dei prodotti che vuoi filtrare.

3. Quindi, chiudi la finestra del codice. Ora, se inserisci il nome del prodotto nella cella K1, verranno visualizzate solo le colonne corrispondenti, le altre verranno nascoste; e se inserisci il testo “Tutti”, tutte le colonne appariranno come mostrato nella demo qui sotto:

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!