Note: The other languages of the website are Google-translated. Back to English

Come impedire la copia e incolla sulla cella con l'elenco a discesa in Excel?

Per una cella con un elenco a discesa di convalida dei dati, quando si copia il contenuto da un'altra cella e si incolla su di essa, l'elenco a discesa scomparirà e verrà sostituito con il nuovo contenuto da incollare. In alcuni casi, vuoi impedire di copiare e incollare altri contenuti sulla cella con l'elenco a discesa, cosa faresti per risolverlo? In questo articolo, otterrai un metodo VBA per affrontare questo problema.

Impedisci copia e incolla sulla cella con l'elenco a discesa in Excel


Impedisci copia e incolla sulla cella con l'elenco a discesa in Excel

1. Aprire il foglio di lavoro con la cella dell'elenco a discesa che si desidera impedire di copiare e incollare.

2. Stampa altro + F11 tasti contemporaneamente per aprire il file Applicazioni Microsoft Visual Basic finestra.

3. Nel Applicazioni Microsoft Visual Basic finestra, fare doppio clic sul nome del foglio di lavoro corrente nel riquadro di sinistra, quindi copiare e incollare il codice VBA sottostante nell'editor del codice. Vedi screenshot:

Codice VBA: impedisce di copiare e incollare sulla cella con l'elenco a discesa

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20200903
    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. Stampa altro + Q tasti per uscire da Applicazioni Microsoft Visual Basic finestra.

5. Quando incolli il contenuto in una cella con un elenco a discesa, verrà visualizzata una finestra di dialogo per ricordarti che non è consentito incollare. Vedi screenshot:

Note:: Questo VBA funziona solo con l'incollaggio di una singola cella. Se copi e incolli in più celle, non funzionerà.

Crea facilmente un elenco a discesa con caselle di controllo in Excel:

Il termoprotettore Elenco a discesa con caselle di controllo utilità di Kutools for Excel può aiutarti a creare facilmente un elenco a discesa con caselle di controllo in un intervallo specificato, foglio di lavoro corrente, cartella di lavoro corrente o tutte le cartelle di lavoro aperte in base alle tue esigenze.
Scarica subito la traccia completa gratuita di 30 giorni di Kutools per Excel!


Articoli correlati:

Come creare un elenco a discesa con più caselle di controllo in Excel?
Molti utenti di Excel tendono a creare un elenco a discesa con più caselle di controllo per selezionare più elementi dall'elenco alla volta. In realtà, non puoi creare un elenco con più caselle di controllo con la convalida dei 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 i fogli di lavoro all'interno di una cartella di lavoro. Ma se i dati dell'elenco necessari per la convalida dei dati 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 in dettaglio.

Crea un elenco a discesa ricercabile in Excel
Per un elenco a discesa con numerosi valori, trovarne uno corretto non è un lavoro facile. In precedenza abbiamo introdotto un metodo di completamento automatico dell'elenco a discesa quando si immette la prima lettera nella casella a discesa. Oltre alla funzione di completamento automatico, è anche possibile rendere ricercabile l'elenco a discesa per migliorare l'efficienza lavorativa nel trovare i valori corretti nell'elenco a discesa. Per rendere ricercabile l'elenco a discesa, prova il metodo in questo tutorial.

Compilare automaticamente altre celle quando si selezionano i valori nell'elenco a discesa di Excel
Supponiamo che tu abbia 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 inseriti automaticamente in una cella selezionata. Per risolvere il problema, i metodi in questo tutorial ti faranno un favore.

Altri tutorial per l'elenco a discesa ...


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • 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, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (12)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Funziona, ma quando incollo il valore, ciò consente dati che non provengono dall'elenco a discesa. Qualsiasi modo per limitare qualsiasi valore che non è dall'elenco.
Dilip
Questo commento è stato fatto dal moderatore sul sito
Ciao Dilip, sei riuscito a risolvere il problema, anch'io ho un problema simile. Devo consentire la copia, incolla solo per i valori a discesa nella cella di convalida dei dati, altro che devo limitare. Puoi condividere la tua soluzione. Grazie Rao
Rao
Questo commento è stato fatto dal moderatore sul sito
Ciao, durante l'esecuzione di questa macro ho ricevuto questo errore di debug "Application.Undo". Pls risolve questo APPENA POSSIBILE
Jai
Questo commento è stato fatto dal moderatore sul sito
Ciao, sopra menzionato il codice vba non è run.kindly risolve.
Chandan
Questo commento è stato fatto dal moderatore sul sito
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String Se Target.Count > 1 Quindi Esci Sub End Se Application.EnableEvents = False xValue = Target.Value in caso di errore Riprendi successivo xCheck1 = Target. Validation.InCellDropdown In caso di errore Vai a 0 Application.Undo In caso di errore Riprendi Avanti xCheck2 = Target.Validation.InCellDropdown In caso di errore Vai a 0 Se xCheck1 = xCheck2 Quindi Target = xValue Altrimenti MsgBox "Non è consentito incollare!" End If Application.EnableEvents = True End Sub Questa macro non funziona quando si copia da una cartella di lavoro o da un foglio di lavoro diversi, quindi per favore dimmi come evitare anche queste cose
Abhijeet
Questo commento è stato fatto dal moderatore sul sito
Grazie mille !! funziona bene per me!!! la copia in una singola cella è limitata. ma se copio un elenco di celle e incollo .., l'incolla viene accettato. fammi vedere se riesco a sintonizzarlo .. grazie comunque
jepson
Questo commento è stato fatto dal moderatore sul sito
Jepson, sei riuscito a risolvere il problema del copia e incolla in più celle? Grazie in anticipo!
G
Questo commento è stato fatto dal moderatore sul sito
Ciao Dilip, sei in grado di risolvere il problema di consentire ai dati di utilizzare i valori di incolla..anche io sto affrontando lo stesso problema..aiutami su questo per favore
Amit Jain
Questo commento è stato fatto dal moderatore sul sito
Ciao Dilip, sei in grado di risolvere il problema di consentire ai dati di utilizzare i valori di incolla
Amit Jain
Questo commento è stato fatto dal moderatore sul sito
sei riuscito a risolvere il problema del copia e incolla in più celle? Grazie in anticipo!
arvindo raj
Questo commento è stato fatto dal moderatore sul sito
No, non l'ho capito. Non ho provato a risolvere dopo un po'.
Dilip
Questo commento è stato fatto dal moderatore sul sito
Funziona MA dopo aver inserito il codice non è possibile ANNULLARE nulla. Non è consentito un solo passo indietro.
Eva
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0  Personaggi
Posizioni suggerite