Přejít k hlavnímu obsahu

Jak zabránit kopírování a vkládání přes buňku pomocí rozevíracího seznamu v aplikaci Excel?

U buňky s rozevíracím seznamem pro ověření dat bude při kopírování obsahu z jiné buňky a vložení do ní rozevírací seznam pryč a nahrazen novým vkládacím obsahem. V některých případech chcete zabránit kopírování a vložení dalšího obsahu přes buňku pomocí rozevíracího seznamu, co byste s tím udělali? V tomto článku získáte metodu VBA řešení tohoto problému.

Zabraňte kopírování a vložení přes buňku pomocí rozevíracího seznamu v aplikaci Excel


Zabraňte kopírování a vložení přes buňku pomocí rozevíracího seznamu v aplikaci Excel

1. Otevřete list s buňkou rozevíracího seznamu, které chcete zabránit kopírování a vložení.

2. lis Další + F11 současně otevřete Aplikace Microsoft Visual Basic okno.

3. V Aplikace Microsoft Visual Basic v levém podokně poklepejte na název aktuálního listu, poté zkopírujte a vložte níže uvedený kód VBA do editoru kódu. Viz screenshot:

Kód VBA: Zabraňte kopírování a vložení přes buňku pomocí rozevíracího seznamu

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. lis Další + Q klávesy pro opuštění Aplikace Microsoft Visual Basic okno.

5. Když vložíte obsah do buňky s rozevíracím seznamem, zobrazí se dialogové okno, které vám připomene, že vkládání není povoleno. Viz screenshot:

Poznámka: Tento VBA funguje pouze při vkládání jedné buňky. Pokud zkopírujete a vložíte do více buněk, nebude to fungovat.

Snadné vytváření rozevíracího seznamu se zaškrtávacími políčky v aplikaci Excel:

Projekt Rozevírací seznam se zaškrtávacími políčky užitečnost Kutools pro Excel vám pomůže snadno vytvořit rozevírací seznam se zaškrtávacími políčky v zadaném rozsahu, aktuálním listu, aktuálním sešitu nebo všech otevřených sešitech podle vašich potřeb.
Stáhněte si nyní 30denní bezplatnou stopu Kutools pro Excel!


Související články:

Jak vytvořit rozevírací seznam s více zaškrtávacími políčky v aplikaci Excel?
Mnoho uživatelů aplikace Excel má tendenci vytvářet rozevírací seznam s více zaškrtávacími políčky, aby vybrali více položek ze seznamu najednou. Ve skutečnosti nemůžete vytvořit seznam s více zaškrtávacími políčky pomocí Ověření dat. V tomto kurzu vám ukážeme dvě metody vytvoření rozevíracího seznamu s více zaškrtávacími políčky v aplikaci Excel. Tento výukový program poskytuje způsob řešení problému.

Vytvořte rozevírací seznam z jiného sešitu v aplikaci Excel
Je docela snadné vytvořit rozevírací seznam pro ověření dat mezi listy v sešitu. Ale pokud se seznamová data, která potřebujete pro ověření dat, nacházejí v jiném sešitu, co byste udělali? V tomto kurzu se naučíte, jak vytvořit seznam drop fown z jiného sešitu v aplikaci Excel podrobně.

Vytvořte prohledávatelný rozevírací seznam v aplikaci Excel
Pro rozevírací seznam s mnoha hodnotami není hledání správné práce snadná práce. Dříve jsme zavedli způsob automatického vyplňování rozevíracího seznamu při zadávání prvního písmene do rozevíracího seznamu. Kromě funkce automatického doplňování můžete také v rozevíracím seznamu vyhledávat, abyste zvýšili efektivitu práce při hledání správných hodnot v rozevíracím seznamu. Chcete-li v rozevíracím seznamu vyhledávat, vyzkoušejte metodu v tomto kurzu.

Automatické vyplnění dalších buněk při výběru hodnot v rozevíracím seznamu aplikace Excel
Řekněme, že jste vytvořili rozevírací seznam na základě hodnot v oblasti buněk B8: B14. Když vyberete libovolnou hodnotu z rozevíracího seznamu, chcete, aby se ve vybrané buňce automaticky naplnily odpovídající hodnoty v rozsahu buněk C8: C14. Při řešení problému vám metody v tomto tutoriálu udělají laskavost.

Další výukové programy pro rozevírací seznam ...

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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