Come impedire la copia e incolla su celle con elenco a discesa in Excel?
Gli elenchi a discesa di convalida dei dati sono un modo efficace per controllare il tipo di informazioni che possono essere inserite in determinate celle in Excel, aiutando a mantenere la coerenza e l'integrità dei dati all'interno dei tuoi fogli di lavoro. Tuttavia, si verifica un problema comune quando si copia il contenuto da un'altra cella e lo si incolla in una cella che contiene un elenco a discesa: la convalida dei dati viene rimossa e l'elenco a discesa scompare. Questo può comportare la perdita delle regole di convalida dei dati e la rottura della logica del foglio di calcolo, soprattutto negli scenari in cui l'input dell'utente deve essere limitato alle opzioni fornite dall'elenco a discesa.
Per mantenere l'integrità delle tue celle con menu a discesa, potresti voler impedire agli utenti di incollare sopra di esse. Ciò garantisce che tutti i dati in questi campi critici continuino a seguire le restrizioni e le opzioni previste. In questo tutorial, imparerai come bloccare efficacemente le azioni di copia e incolla sulle celle contenenti elenchi a discesa utilizzando VBA. Questo metodo è adatto per moduli, modelli di input controllati o qualsiasi foglio di lavoro in cui la qualità dei dati è essenziale.
Impedisci la copia e incolla su celle con elenco a discesa in Excel
Impedisci la copia e incolla su celle con elenco a discesa in Excel
Per proteggere i tuoi elenchi a discesa dal contenuto incollato, puoi utilizzare VBA nel foglio di lavoro che contiene quelle celle. Segui questi passaggi:
1. Apri il foglio di lavoro che include gli elenchi a discesa che desideri proteggere.
2. Premi Alt + F11 per aprire la finestra di Visual Basic for Applications.
3. Nel riquadro sinistro, fai doppio clic sul foglio su cui desideri applicare la protezione (non "QuestaCartellaDiLavoro"). Incolla il seguente codice VBA nell'editor di codice:
Codice VBA: Impedisci l'incolla sugli elenchi a discesa
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice
Dim xValue As String
Dim xCheck1 As String
Dim xCheck2 As String
Dim xRg As Range
Dim xArrCheck1() As String
Dim xArrCheck2() As String
Dim xArrValue()
Dim xCount, xJ As Integer
Dim xBol As Boolean
' If Target.Count > 1 Then
' Exit Sub
' End If
xCount = Target.Count
ReDim xArrCheck1(1 To xCount)
ReDim xArrCheck2(1 To xCount)
ReDim xArrValue(1 To xCount)
Application.EnableEvents = False
On Error Resume Next
xJ = 1
For Each xRg In Target
xArrValue(xJ) = xRg.Value
xArrCheck1(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
Application.Undo
xJ = 1
For Each xRg In Target
xArrCheck2(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
xBol = False
For xJ = 1 To xCount
If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
xBol = True
Exit For
End If
Next
If xBol Then
MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
Else
xJ = 1
For Each xRg In Target
xRg.Value = xArrValue(xJ)
xJ = xJ + 1
Next
End If
Application.EnableEvents = True
End Sub
4. Premi Alt + Q per chiudere l'editor VBA e tornare a Excel.
5. Prova a incollare in una cella con elenco a discesa. Un messaggio impedirà l'incolla e l'elenco a discesa rimarrà intatto:
Nota e limitazioni:
Questo codice VBA è progettato solo per le azioni di incolla su singole celle. Potrebbe non prevenire la perdita di convalida dei dati per l'incolla multi-cella. Informa gli utenti di conseguenza.
Suggerimenti per la risoluzione dei problemi:
- Assicurati che il codice sia posizionato nel modulo del foglio di lavoro corretto (non in un modulo generale).
- Abilita le macro all'apertura del file.
- Controlla attentamente eventuali errori di copia/incolla durante l'inserimento del codice.
- Testa la macro in un file di prova prima di applicarla ai dati reali.
Soluzioni alternative:
- Proteggi il foglio di lavoro: Blocca le celle con elenchi a discesa e proteggi il foglio per impedire modifiche. Scopri di più
- Usa avvisi di convalida dei dati: Imposta lo stile di avviso su "Interrompi" per bloccare input manuali non validi. Scopri di più
Crea facilmente elenchi a discesa con caselle di controllo in Excel:
La Aggiungi caselle di controllo allelenco a discesa funzione di Kutools per Excel può aiutarti a creare facilmente elenchi a discesa con caselle di controllo in un intervallo specifico, nel foglio di lavoro corrente, nella cartella di lavoro corrente o in tutte le cartelle di lavoro aperte in base alle tue esigenze.
Scarica la versione completa 30-giorni di prova gratuita di Kutools per Excel ora!
Articoli correlati:
Come creare un elenco a discesa con più caselle di controllo in Excel?
Molti utenti di Excel tendono a creare elenchi a discesa con più caselle di controllo per selezionare più elementi dall'elenco contemporaneamente. In realtà, non puoi creare un elenco con più caselle di controllo con la Convalida Dati. In questo tutorial, ti mostreremo due metodi per creare un elenco a discesa con più caselle di controllo in Excel. Questo tutorial fornisce il metodo per risolvere il problema.
Crea un elenco a discesa da un'altra cartella di lavoro in Excel
È abbastanza facile creare un elenco a discesa di convalida dei dati tra fogli di lavoro all'interno di una cartella di lavoro. Ma se i dati dell'elenco di cui hai bisogno per la convalida si trovano in un'altra cartella di lavoro, cosa faresti? In questo tutorial, imparerai come creare un elenco a discesa da un'altra cartella di lavoro in Excel nei dettagli.
Crea un elenco a discesa ricercabile in Excel
Per un elenco a discesa con numerosi valori, trovare quello giusto non è un compito facile. In precedenza abbiamo introdotto un metodo di completamento automatico dell'elenco a discesa quando si inserisce la prima lettera nella casella a discesa. Oltre alla funzione di completamento automatico, puoi anche rendere l'elenco a discesa ricercabile per migliorare l'efficienza lavorativa nella ricerca dei valori appropriati nell'elenco a discesa. Per rendere l'elenco a discesa ricercabile, prova il metodo in questo tutorial.
Auto-popola altre celle quando si selezionano valori nell'elenco a discesa di Excel
Supponiamo di aver creato un elenco a discesa basato sui valori nell'intervallo di celle B8:B14. Quando si seleziona un valore nell'elenco a discesa, si desidera che i valori corrispondenti nell'intervallo di celle C8:C14 vengano popolati automaticamente in una cella selezionata. Per risolvere il problema, i metodi in questo tutorial ti saranno d'aiuto.
I migliori strumenti per la produttività in Office
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 farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e 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 produttività del50% e riduce centinaia di clic del mouse ogni giorno!
Tutti gli add-in Kutools. Un solo programma di installazione
La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.





- Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
- Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
- Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
- Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in