Salt la conținutul principal

Cum se previne copierea și lipirea peste celulă cu lista derulantă în Excel?

Pentru o celulă cu listă derulantă de validare a datelor, atunci când copiați conținutul dintr-o altă celulă și lipiți-o în ea, lista derulantă va dispărea și va fi înlocuită cu noul conținut de lipire. În unele cazuri, doriți să împiedicați să copiați și să lipiți alt conținut peste celulă cu lista derulantă, ce ați face pentru a face față acestuia? În acest articol, veți obține o metodă VBA de gestionare a acestei probleme.

Preveniți copierea și lipirea peste celulă cu lista derulantă în Excel


Preveniți copierea și lipirea peste celulă cu lista derulantă în Excel

1. Deschideți foaia de lucru cu celula din lista derulantă pe care doriți să o împiedicați să copiați și să lipiți.

2. presa Alt + F11 tastele simultan pentru a deschide Aplicații Microsoft Visual Basic fereastră.

3. În Aplicații Microsoft Visual Basic fereastra, faceți dublu clic pe numele curent al foii de lucru în panoul din stânga, apoi copiați și lipiți codul VBA de mai jos în editorul de cod. Vedeți captura de ecran:

Cod VBA: preveniți copierea și lipirea peste celulă cu lista derulantă

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. presa Alt + Q tastele pentru a ieși din Aplicații Microsoft Visual Basic fereastră.

5. Când lipiți conținut într-o celulă cu listă derulantă, va apărea o casetă de dialog pentru a vă reaminti că lipirea nu este permisă. Vedeți captura de ecran:

notițe: Acest VBA funcționează doar în lipirea cu o singură celulă. Dacă copiați și lipiți în mai multe celule, nu va funcționa.

Creați cu ușurință o listă derulantă cu casete de selectare în Excel:

Listă derulantă cu casete de selectare utilitatea Kutools pentru Excel vă poate ajuta să creați cu ușurință o listă derulantă cu casete de selectare într-un interval specificat, foaia de lucru curentă, registrul de lucru curent sau toate registrele de lucru deschise în funcție de nevoile dvs.
Descărcați acum caracteristica completă gratuită de 30 de zile a Kutools pentru Excel!


Legate de articole:

Cum se creează o listă derulantă cu mai multe casete de selectare în Excel?
Mulți utilizatori Excel tind să creeze o listă derulantă cu mai multe casete de selectare pentru a selecta mai multe articole din listă de fiecare dată. De fapt, nu puteți crea o listă cu mai multe casete de selectare cu validare date. În acest tutorial, vă vom arăta două metode pentru a crea o listă derulantă cu mai multe casete de selectare în Excel. Acest tutorial oferă metoda de rezolvare a problemei.

Creați o listă verticală dintr-un alt registru de lucru în Excel
Este destul de ușor să creați o listă verticală de validare a datelor printre foile de lucru dintr-un registru de lucru. Dar dacă datele listei de care aveți nevoie pentru validarea datelor se află într-un alt registru de lucru, ce ați face? În acest tutorial, veți afla cum să creați o listă de eliminare dintr-un alt registru de lucru în Excel în detalii.

Creați o listă drop-down căutabilă în Excel
Pentru o listă verticală cu numeroase valori, găsirea unuia corect nu este o lucrare ușoară. Anterior, am introdus o metodă de completare automată a listei derulante atunci când introduceți prima literă în caseta derulantă. Pe lângă funcția de completare automată, puteți face ca lista derulantă să poată fi căutată pentru îmbunătățirea eficienței de lucru în găsirea valorilor corespunzătoare în lista derulantă. Pentru ca lista derulantă să poată fi căutată, încercați metoda din acest tutorial.

Completați automat alte celule atunci când selectați valorile din lista verticală Excel
Să presupunem că ați creat o listă derulantă pe baza valorilor din intervalul de celule B8: B14. Când selectați orice valoare din lista derulantă, doriți ca valorile corespunzătoare din intervalul de celule C8: C14 să fie populate automat într-o celulă selectată. Pentru rezolvarea problemei, metodele din acest tutorial vă vor face o favoare.

Mai multe tutoriale pentru lista derulantă ...

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I works BUT after you put the code you cannot UNDO anything. Not a single step back is allowed.
This comment was minimized by the moderator on the site
No, I did not figure it out. I didn't try to resolve after a while.
This comment was minimized by the moderator on the site
did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
This comment was minimized by the moderator on the site
Hi Dilip, are you able to fix the issue of allowing data using paste values
This comment was minimized by the moderator on the site
Hi Dilip, are you able to fix the issue of allowing data using paste values..i am also facing the same issue..help me on this please
This comment was minimized by the moderator on the site
Thank you very much !! works fine for me !!! copying into a single cell is restricted. but if i copy a list of cells and paste.., the paste is accepted. let me see if i can tune this up ..thanks anyways
This comment was minimized by the moderator on the site
Jepson, did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
This comment was minimized by the moderator on the site
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String If Target.Count > 1 Then Exit Sub End If Application.EnableEvents = False xValue = Target.Value On Error Resume Next xCheck1 = Target.Validation.InCellDropdown On Error GoTo 0 Application.Undo On Error Resume Next xCheck2 = Target.Validation.InCellDropdown On Error GoTo 0 If xCheck1 = xCheck2 Then Target = xValue Else MsgBox "No pasting allowed!" End If Application.EnableEvents = True End Sub This Macro not work when copy from different workbook or worksheet then so please tell me how to avoid these things also
This comment was minimized by the moderator on the site
Hi, above mention vba code is not run.kindly resolve.
This comment was minimized by the moderator on the site
Hi, While I running this macro I got this debug error "Application.Undo". Pls resolve this ASAP
This comment was minimized by the moderator on the site
This works but when I paste value this is allowing data which is not from the drop down list. Any way to restrict any value which is not from the list.
This comment was minimized by the moderator on the site
Hi Dilip, Did you able to resolve the issue, i too having similar issue. I have to allow copy,paste only for drop down values in the data validation cell other i have to restrict. Can you share your solution. Thanks Rao
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations