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

Hur förhindrar man kopiering och klistra in över cellen med rullgardinsmenyn i Excel?

För en cell med datavalideringslista, när du kopierar innehåll från en annan cell och klistrar till den, kommer rullgardinsmenyn att försvinna och ersättas med det nya klistra in innehållet. I vissa fall vill du förhindra kopiering och klistra in annat innehåll över cellen med rullgardinslistan. Vad skulle du göra för att hantera det? I den här artikeln får du en VBA-metod för att hantera detta problem.

Förhindra kopiering och klistra in över cellen med rullgardinsmenyn i Excel


Förhindra kopiering och klistra in över cellen med rullgardinsmenyn i Excel

1. Öppna kalkylbladet med rullgardinsmenyn som du vill förhindra kopiering och klistra in.

2. Tryck andra + F11 samtidigt för att öppna Microsoft Visual Basic-applikationer fönster.

3. I Microsoft Visual Basic-applikationer dubbelklicka på det aktuella kalkylbladets namn i den vänstra rutan och kopiera och klistra in nedanstående VBA-kod i kodredigeraren. Se skärmdump:

VBA-kod: Förhindra kopiering och klistra in över cellen med rullgardinsmenyn

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. Tryck andra + Q för att avsluta Microsoft Visual Basic-applikationer fönster.

5. När du klistrar in innehåll i en cell med rullgardinsmenyn dyker en dialogruta upp för att påminna om att klistra in inte är tillåtet. Se skärmdump:

Anmärkningar: Denna VBA fungerar bara i klistrning av en cell. Om du kopierar och klistrar in flera celler fungerar det inte.

Skapa enkelt listrutan med kryssrutor i Excel:

Du har nu möjlighet Listruta med kryssrutor nytta av Kutools för Excel kan hjälpa dig att enkelt skapa rullgardinsmenyn med kryssrutor i ett angivet intervall, aktuellt kalkylblad, aktuell arbetsbok eller alla öppnade arbetsböcker baserat på dina behov.
Ladda ner hela funktionen 30-dagars gratis spår av Kutools för Excel nu!


Relaterade artiklar:

Hur skapar jag rullgardinslista med flera kryssrutor i Excel?
Många Excel-användare tenderar att skapa rullgardinslista med flera kryssrutor för att välja flera objekt från listan per gång. Du kan faktiskt inte skapa en lista med flera kryssrutor med datavalidering. I den här handledningen kommer vi att visa dig två metoder för att skapa rullgardinslista med flera kryssrutor i Excel. Denna handledning ger metoden för att lösa problemet.

Skapa rullgardinslista från en annan arbetsbok i Excel
Det är ganska enkelt att skapa en rullgardinslista för datavalidering bland kalkylblad i en arbetsbok. Men om listdata du behöver för datavalideringen hittar du i en annan arbetsbok, vad skulle du göra? I den här guiden lär du dig hur du skapar en drop-down-lista från en annan arbetsbok i Excel i detalj.

Skapa en sökbar rullgardinslista i Excel
För en rullgardinsmeny med många värden är det inte lätt att hitta en riktig. Tidigare har vi introducerat en metod för automatisk komplettering av rullgardinsmenyn när du anger den första bokstaven i rullgardinsmenyn. Förutom funktionen för autoslutförande kan du också göra listrutan sökbar för att förbättra arbetseffektiviteten för att hitta rätt värden i listrutan. För att göra rullgardinsmenyn sökbar, prova metoden i den här självstudien.

Fyll i andra celler automatiskt när du väljer värden i Excel-listrutan
Låt oss säga att du har skapat en rullgardinslista baserat på värdena i cellområdet B8: B14. När du väljer något värde i listrutan vill du att motsvarande värden i cellintervall C8: C14 fylls automatiskt i en vald cell. För att lösa problemet kommer metoderna i denna handledning att göra dig en tjänst.

Fler handledning för rullgardinsmenyn ...


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (12)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Detta fungerar men när jag klistrar in värde tillåter detta data som inte är från rullgardinsmenyn. Något sätt att begränsa värden som inte finns i listan.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Dilip, Kunde du lösa problemet, jag har också liknande problem. Jag måste tillåta kopiering, klistra in endast för rullgardinsvärden i datavalideringscellen, annat måste jag begränsa. Kan du dela din lösning. Tack Rao
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, medan jag körde det här makrot fick jag det här felsökningsfelet "Application.Undo". Snälla lös detta ASAP
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, ovan nämnda vba-koden körs inte. vänligen lösa.
Denna kommentar minimerades av moderatoren på webbplatsen
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String If Target.Count > 1 Avsluta sedan 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 "Ingen inklistring tillåten!" End If Application.EnableEvents = True End Sub Det här makrot fungerar inte när du kopierar från en annan arbetsbok eller ett annat arbetsblad, så snälla berätta för mig hur man undviker dessa saker också
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket !! funkar bra för mig!!! kopiering till en enda cell är begränsad. men om jag kopierar en lista med celler och klistrar in.., accepteras inklistringen. låt mig se om jag kan finjustera detta ..tack ändå
Denna kommentar minimerades av moderatoren på webbplatsen
Jepson, lyckades du lösa problemet med att kopiera och klistra in i flera celler? Tack på förhand!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Dilip, kan du lösa problemet med att tillåta data med hjälp av klistra värden .. jag står också inför samma problem .. hjälp mig med detta snälla
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Dilip, kan du lösa problemet med att tillåta data med hjälp av inklistrade värden
Denna kommentar minimerades av moderatoren på webbplatsen
lyckades du lösa problemet med att kopiera och klistra in i flera celler? Tack på förhand!
Denna kommentar minimerades av moderatoren på webbplatsen
Nej, jag kom inte på det. Jag försökte inte lösa efter ett tag.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag fungerar MEN efter att du lagt in koden kan du inte ångra någonting. Inte ett enda steg tillbaka är tillåtet.
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL