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

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 celou funkci 30-denní bezplatná trasa Kutools pro Excel nyní!


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ší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

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!
officetab dno
Komentáře (12)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Funguje to, ale když vložím hodnotu, povolím data, která nejsou z rozevíracího seznamu. Jakýkoli způsob, jak omezit jakoukoli hodnotu, která není ze seznamu.
Tento komentář byl moderátorem webu minimalizován
Ahoj Dilipe, podařilo se ti problém vyřešit, mám taky podobný problém. Musím povolit kopírování, vkládání pouze pro rozevírací hodnoty v buňce ověření dat, jiné musím omezit. Můžete se podělit o své řešení. Díky Rao
Tento komentář byl moderátorem webu minimalizován
Ahoj, při spouštění tohoto makra se mi zobrazila chyba ladění "Application.Undo". Pls vyřešit to ASAP
Tento komentář byl moderátorem webu minimalizován
Ahoj, výše uvedený vba kód není run.kindly resolve.
Tento komentář byl moderátorem webu minimalizován
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 Erreck1 Next xCh Validation.InCellDropdown On Error Přejít na 0 Application.Undo On Error Pokračovat Další xCheck2 = Target.Validation.InCellDropdown On Error PřejítNa 0 If xCheck1 = xCheck2 Then Target = xValue Else MsgBox "Není povoleno vkládání!" End If Application.EnableEvents = True End Sub Toto makro nefunguje při kopírování z jiného sešitu nebo listu, tak mi prosím řekněte, jak se těmto věcem také vyhnout
Tento komentář byl moderátorem webu minimalizován
Děkuji mnohokrát !! funguje mi dobře!!! kopírování do jedné buňky je omezeno. ale pokud zkopíruji seznam buněk a vložím .., vložení je přijato. uvidíme, jestli to dokážu vyladit .. každopádně díky
Tento komentář byl moderátorem webu minimalizován
Jepsone, podařilo se vám vyřešit problém s kopírováním a vkládáním do více buněk? Díky předem!
Tento komentář byl moderátorem webu minimalizován
Ahoj Dilip, dokážeš vyřešit problém s povolením dat pomocí vkládání hodnot.. také čelím stejnému problému.. pomozte mi prosím
Tento komentář byl moderátorem webu minimalizován
Ahoj Dilipe, dokážeš vyřešit problém s povolením dat pomocí vkládání hodnot
Tento komentář byl moderátorem webu minimalizován
podařilo se vám vyřešit problém s kopírováním a vkládáním do více buněk? Díky předem!
Tento komentář byl moderátorem webu minimalizován
Ne, nepřišel jsem na to. Po chvíli jsem to nezkoušel vyřešit.
Tento komentář byl moderátorem webu minimalizován
Funguji, ALE poté, co vložíte kód, nemůžete nic VRÁTIT. Není dovolen jediný krok zpět.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL