Come impedire la copia e incolla su una cella con 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 lo si incolla in essa, l'elenco a discesa scomparirà e verrà sostituito con il nuovo contenuto incollato. In alcuni casi, potresti voler impedire la copia e incolla di altri contenuti sulla cella con l'elenco a discesa; cosa faresti per gestire questa situazione? In questo articolo, otterrai un metodo VBA per affrontare questo problema.
Impedisci la copia e incolla su una cella con elenco a discesa in Excel
Impedisci la copia e incolla su una cella con elenco a discesa in Excel
1. Apri il foglio di lavoro con la cella dell'elenco a discesa su cui vuoi impedire la copia e incolla.
2. Premi contemporaneamente i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic Applications.
3. Nella finestra Microsoft Visual Basic Applications, fai doppio clic sul nome del foglio di lavoro corrente nel riquadro sinistro, quindi copia e incolla il seguente codice VBA nell'editor del Codice. Vedi screenshot:
Codice VBA: Impedisci la copia e incolla su una cella con 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. Premi i tasti Alt + Q per uscire dalla finestra Microsoft Visual Basic Applications.
5. Quando incollerai il contenuto in una cella con elenco a discesa, apparirà una finestra di dialogo per avvisarti che l'incolla non è consentito. Vedi screenshot:
Nota: Questo VBA funziona solo per l'incolla in 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 Elenco a discesa con caselle di controllo dell'utilità Kutools for Excel può aiutarti a creare facilmente un elenco 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 un elenco a discesa con più caselle di controllo per selezionare più elementi dall'elenco in una sola 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 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. Precedentemente abbiamo introdotto un metodo per completare automaticamente l'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.
Compila automaticamente altre celle quando si selezionano valori nell'elenco a discesa di Excel
Diciamo che hai creato un elenco a discesa basato sui valori nell'intervallo di celle B8:B14. Quando selezioni qualsiasi valore nell'elenco a discesa, vuoi che i valori corrispondenti nell'intervallo di celle C8:C14 vengano automaticamente popolati 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 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!