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

Jak zapobiec kopiowaniu i wklejaniu komórek za pomocą rozwijanej listy w programie Excel?

W przypadku komórki z rozwijaną listą sprawdzania poprawności danych po skopiowaniu zawartości z innej komórki i wklejeniu do niej lista rozwijana zniknie i zostanie zastąpiona nową zawartością wklejania. W niektórych przypadkach chcesz zapobiec kopiowaniu i wklejaniu innej zawartości do komórki za pomocą listy rozwijanej, co byś zrobił, aby sobie z tym poradzić? W tym artykule poznasz metodę VBA radzenia sobie z tym problemem.

Zapobiegaj kopiowaniu i wklejaniu do komórki za pomocą rozwijanej listy w programie Excel


Zapobiegaj kopiowaniu i wklejaniu do komórki za pomocą rozwijanej listy w programie Excel

1. Otwórz arkusz z rozwijaną komórką listy, której chcesz uniemożliwić kopiowanie i wklejanie.

2. naciśnij inny + F11 klawisze jednocześnie, aby otworzyć Aplikacje Microsoft Visual Basic okno.

3. w Aplikacje Microsoft Visual Basic kliknij dwukrotnie nazwę bieżącego arkusza w lewym okienku, a następnie skopiuj i wklej poniższy kod VBA do edytora kodu. Zobacz zrzut ekranu:

Kod VBA: Zapobiegaj kopiowaniu i wklejaniu do komórki za pomocą rozwijanej listy

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. naciśnij inny + Q klawisze, aby wyjść z Aplikacje Microsoft Visual Basic okno.

5. Kiedy wklejasz zawartość do komórki z rozwijaną listą, pojawi się okno dialogowe przypominające, że wklejanie jest niedozwolone. Zobacz zrzut ekranu:

Uwagi: Ten VBA działa tylko w wklejaniu pojedynczych komórek. Jeśli skopiujesz i wkleisz w wielu komórkach, to nie zadziała.

Z łatwością utwórz listę rozwijaną z polami wyboru w programie Excel:

Podróż Ruta de la Plata w liczbach Lista rozwijana z polami wyboru użyteczność Kutools dla programu Excel może pomóc w łatwym utworzeniu listy rozwijanej z polami wyboru w określonym zakresie, bieżącym arkuszu, bieżącym skoroszycie lub wszystkich otwartych skoroszytach w zależności od potrzeb.
Pobierz pełną funkcję 30-dniowy bezpłatny szlak Kutools for Excel już teraz!


Podobne artykuły:

Jak utworzyć listę rozwijaną z wieloma polami wyboru w programie Excel?
Wielu użytkowników programu Excel ma tendencję do tworzenia listy rozwijanej z wieloma polami wyboru, aby wybrać wiele pozycji z listy na raz. W rzeczywistości nie można utworzyć listy z wieloma polami wyboru z funkcją Walidacja danych. W tym samouczku pokażemy dwie metody tworzenia rozwijanej listy z wieloma polami wyboru w programie Excel. W tym samouczku przedstawiono metodę rozwiązania problemu.

Utwórz listę rozwijaną z innego skoroszytu w programie Excel
Utworzenie listy rozwijanej sprawdzania poprawności danych w arkuszach roboczych w skoroszycie jest dość łatwe. Ale jeśli lista danych potrzebnych do weryfikacji danych znajduje się w innym skoroszycie, co byś zrobił? W tym samouczku dowiesz się, jak szczegółowo utworzyć listę rozwijaną z innego skoroszytu w programie Excel.

Utwórz listę rozwijaną z możliwością wyszukiwania w programie Excel
W przypadku listy rozwijanej z wieloma wartościami znalezienie odpowiedniej nie jest łatwą pracą. Wcześniej wprowadziliśmy metodę automatycznego uzupełniania listy rozwijanej po wpisaniu pierwszej litery w rozwijanym polu. Oprócz funkcji autouzupełniania, możesz również umożliwić przeszukiwanie listy rozwijanej, aby zwiększyć wydajność pracy w znajdowaniu odpowiednich wartości na liście rozwijanej. Aby umożliwić przeszukiwanie listy rozwijanej, wypróbuj metodę opisaną w tym samouczku.

Automatycznie wypełniaj inne komórki podczas wybierania wartości na liście rozwijanej programu Excel
Załóżmy, że utworzyłeś listę rozwijaną na podstawie wartości w zakresie komórek B8: B14. Po wybraniu dowolnej wartości z listy rozwijanej chcesz, aby odpowiednie wartości w zakresie komórek C8: C14 były automatycznie wypełniane w wybranej komórce. Aby rozwiązać problem, skorzystaj z metod przedstawionych w tym samouczku.

Więcej samouczków dla rozwijanej listy ...


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (12)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
To działa, ale kiedy wklejam wartość, zezwala to na dane, których nie ma na liście rozwijanej. Jakikolwiek sposób na ograniczenie wartości, których nie ma na liście.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Dilip, czy udało Ci się rozwiązać problem, ja też mam podobny problem. Muszę zezwolić na kopiowanie, wklejanie tylko dla wartości rozwijanych w komórce sprawdzania poprawności danych, inne muszę ograniczyć. Czy możesz podzielić się swoim rozwiązaniem. Dzięki Rao
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Podczas uruchamiania tego makra otrzymuję błąd debugowania „Application.Undo”. Pls rozwiązać to JAK NAJSZYBCIEJ!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, powyżej wspomniany kod vba nie jest rozwiązany.
Ten komentarz został zminimalizowany przez moderatora na stronie
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String Jeśli Target.Count > 1 Następnie wyjdź z Sub End, jeśli Application.EnableEvents = False xValue = Target.Value w przypadku błędu Wznów Dalej xCheck1 = Target. Validation.InCellDropdown W przypadku błędu GoTo 0 Application.Undo W przypadku błędu Wznów Dalej xCheck2 = Target.Validation.InCellDropdown W przypadku błędu GoTo 0 If xCheck1 = xCheck2 Then Target = xValue Else MsgBox "Wklejanie zabronione!" End If Application.EnableEvents = True End Sub To makro nie działa podczas kopiowania z innego skoroszytu lub arkusza roboczego, więc proszę powiedz mi, jak również tego uniknąć
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję bardzo !! działa dobrze dla mnie !!! kopiowanie do pojedynczej komórki jest ograniczone. ale jeśli skopiuję listę komórek i wkleję..., wklejenie zostanie zaakceptowane. zobaczę, czy mogę to dostroić .. dzięki i tak
Ten komentarz został zminimalizowany przez moderatora na stronie
Jepson, czy udało Ci się rozwiązać problem kopiowania i wklejania do wielu komórek? Z góry dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Dilip, czy jesteś w stanie rozwiązać problem zezwalania na dane za pomocą wklejania wartości.. Stoję też w obliczu tego samego problemu.. pomóż mi w tym, proszę
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Dilip, czy jesteś w stanie rozwiązać problem zezwalania na dane za pomocą wklejania wartości?
Ten komentarz został zminimalizowany przez moderatora na stronie
czy udało Ci się rozwiązać problem kopiowania i wklejania do wielu komórek? Z góry dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Nie, nie rozgryzłem tego. Po jakimś czasie nie próbowałem rozwiązać problemu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Działam, ALE po umieszczeniu kodu nie możesz niczego cofnąć. Ani jeden krok w tył nie jest dozwolony.
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL