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

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 caracteristica completă 30- traseu gratuit de o zi a Kutools pentru Excel acum!


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 Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

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!
fundul officetab
Comentarii (12)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru funcționează, dar când lipesc valoare, aceasta permite date care nu sunt din lista derulantă. Orice modalitate de a restricționa orice valoare care nu este din listă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Dilip, Ai reușit să rezolvi problema, am și eu o problemă similară. Trebuie să permit copierea, lipirea numai pentru valorile drop-down din celula de validare a datelor, altele pe care trebuie să le restricționez. Puteți împărtăși soluția dvs. Multumesc Rao
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, În timp ce rulez această macrocomandă, am primit această eroare de depanare „Application.Undo”. Vă rugăm să rezolvați acest lucru cât de curând
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, menționați mai sus codul vba nu este rulat. Rezolvați cu amabilitate.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String Dacă Target.Count > 1 Then Exit Sub End If Application.EnableEvents = False xValue = Target.Value On Error Reluare Următorul xCheck1 = Target. Validation.InCellDropdown La eroare GoTo 0 Application.Undo On Error Reluare Următorul xCheck2 = Target.Validation.InCellDropdown La eroare GoTo 0 Dacă xCheck1 = xCheck2 Then Target = xValue Else MsgBox "Nu este permisă lipirea!" End If Application.EnableEvents = True End Sub Această macrocomandă nu funcționează atunci când se copiază dintr-un alt registru de lucru sau dintr-o foaie de lucru, așa că vă rog să-mi spuneți cum să evit și aceste lucruri
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc foarte mult !! la mine merge bine!!! copierea într-o singură celulă este restricționată. dar dacă copiez o listă de celule și lipesc..., lipirea este acceptată. lasă-mă să văd dacă pot regla asta... mulțumesc oricum
Acest comentariu a fost redus la minimum de moderatorul de pe site
Jepson, ai reușit să rezolvi problema copierii și lipirii în mai multe celule? Mulțumesc anticipat!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Dilip, poți să rezolvi problema de a permite date folosind valori de lipire.. De asemenea, mă confrunt cu aceeași problemă.. Ajută-mă în acest sens, te rog
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Dilip, sunteți în măsură să remediați problema de a permite date folosind valori de lipire
Acest comentariu a fost redus la minimum de moderatorul de pe site
ai reușit să rezolvi problema copierii și lipirii în mai multe celule? Mulțumesc anticipat!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu, nu mi-am dat seama. Nu am încercat să rezolv după un timp.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcționează, DAR după ce ai pus codul nu poți anula nimic. Nu este permis nici un pas înapoi.
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL