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

Jak wyłączyć funkcje wycinania, kopiowania i wklejania w programie Excel?

Przypuśćmy, że masz skoroszyt z ważnymi danymi, które musisz chronić przed wycinaniem, kopiowaniem i wklejaniem. Jak to osiągnąć? W tym artykule przedstawiono metodę VBA, która umożliwia jednoczesne wyłączenie funkcji wycinania, kopiowania i wklejania w skoroszycie programu Excel.

Wyłącz funkcje wycinania, kopiowania i wklejania za pomocą kodu VBA


Wyłącz funkcje wycinania, kopiowania i wklejania za pomocą kodu VBA

Wykonaj następujące czynności, aby wyłączyć funkcje wycinania, kopiowania i wklejania w skoroszycie programu Excel.

1. W skoroszycie musisz wyłączyć funkcje wycinania, kopiowania i wklejania, naciśnij przycisk inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications kliknij dwukrotnie Ten zeszyt po lewej Projekt okienko, a następnie skopiuj i wklej poniższy kod VBA do pliku ThisWorkbook (kod) okno. Zobacz zrzut ekranu:

Kod VBA: wyłącz jednocześnie funkcje wycinania, kopiowania i wklejania w programie Excel

Private Sub Workbook_Activate()
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub

3. Następnie naciśnij inny + Q klawisze, aby wyjść z Microsoft Visual Basic for Applications okno.

Teraz nie możesz wycinać ani kopiować danych z tego skoroszytu, tymczasem danych skopiowanych z innych arkuszy lub skoroszytów nie można wkleić do tego skoroszytu.

Uwagi: Funkcja przeciągnij i upuść jest również wyłączona po uruchomieniu powyższego kodu VBA.


Powiązane artykuły:


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 (50)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
robię jak powyżej, ale funkcja wycinania kopiowania i przeszłości jest wyłączona w dowolnym otwieranym pliku Excela. Dlaczego?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, użyłem tego, aby ukryć „Wycięcie” przed użytkownikami i działa świetnie, chyba że masz tabelę, „Cięcie” w cudowny sposób pojawia się ponownie po wybraniu komórki w tabeli, dokładnie tego, czego próbuję uniknąć. jakieś pomysły? dzięki!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki u Pana jego działanie. Ale w całym skoroszycie. Jeśli potrzebuję tego kodu tylko w konkretnym arkuszu. Czy jest to możliwe?
Ten komentarz został zminimalizowany przez moderatora na stronie
czy znalazłeś odpowiedź?
Ten komentarz został zminimalizowany przez moderatora na stronie
Wielkie dzięki. Działa w całym workbooku. Czy możemy wykonać kodowanie tylko dla 1 arkusza. Proszę o pomoc.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak ponownie włączyć funkcję wycinania, kopiowania i wklejania? Proszę o radę!
Ten komentarz został zminimalizowany przez moderatora na stronie
drogie niebo
Uruchom poniższy VBA1 (umieść kod w module ThisWorkbook), aby wyłączyć funkcję wycinania, kopiowania i wklejania w skoroszycie.

VBA1:
Sub DelCopy()
Z aplikacją
.OnKey "^x", ""
.OnKey "^c", ""
.CommandBars("Komórka").Controls(1).Enabled = False
.CommandBars("Komórka").Controls(2).Enabled = False
Kończyć z
End Sub

I uruchom VBA2, aby włączyć wszystkie te funkcje z powrotem do skoroszytu.

VBA2:
Podrzędna kopia odzyskiwania()
Z aplikacją
.OnKey "^x"
.OnKey "^c"
.CommandBars("Komórka").Controls(1).Enabled = True
.CommandBars("Komórka").Controls(2).Enabled = True
Kończyć z
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Wygląda na to, że to nie zadziałało - czy powinienem usunąć oryginalny kod VBA, a następnie wkleić powyższy, aby ponownie włączyć funkcję Wytnij, skopiuj i wklej?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dobry dzień,
Powyższy komentarz VBA1in jest zamiennikiem oryginalnego kodu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Drogi,

chcę wyłączyć wycinanie, kopiowanie, wklejanie w arkuszu programu Excel 2007
czy możesz udostępnić kod do tego?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dobry dzień,
Dziękuję za Twój komentarz. Próbuję znaleźć rozwiązanie dla programu Excel 2007. Proszę cierpliwie czekać.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Czy można wyłączyć tylko "CUT"? ale nadal mogę korzystać z funkcji Kopiuj i Wklej?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Carmelo,
Skopiuj poniższy kod i wklej go w oknie kodu skoroszytu w skoroszycie, a następnie zapisz go jako skoroszyt programu Excel z obsługą makr. Wtedy funkcja „Wytnij” zostanie wyłączona.

Opcja Jawna
Prywatne WithEvents Cmbrs jako CommandBars

Private Sub Workbook_Open ()
Ustaw Cmbrs = Application.CommandBars
End Sub

Private Sub Workbook_Activate ()
Jeśli Application.CutCopyMode = 2 Wtedy
Application.CutCopyMode = 0
End If
End Sub

Prywatna sub Cmbrs_OnUpdate()
Jeśli ja jest aktywnyWorkbook, to
Jeśli Application.CutCopyMode = 2 Wtedy
Application.CutCopyMode = 0
MsgBox "Operacje cięcia wyłączone"
End If
End If
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Próbowałem tak jak powiedziałeś, ale nic się nie stało. Chce dokładnie to samo, tylko
Funkcja „Wytnij” wyłączona. Muszę wyłączyć opcję "wytnij" z opcji przycisku prawym przyciskiem myszy i paska narzędzi.
Czy to możliwe kryształ?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Kod działa dobrze w moim przypadku. Czy mogę poznać Twoją wersję pakietu Office?
Ten komentarz został zminimalizowany przez moderatora na stronie
Hi

Jestem początkującym kodem VBA i ten kod rozwiązał 99% moich problemów.

Czy możliwe jest zablokowanie arkusza dziury (jak ten kod dawkuje), ale nadal ma jedną komórkę odblokowaną?
(Wyjaśnij, chciałbym zezwolić na kopiowanie przeszłości w informacjach tylko w jednej komórce w arkuszu otworów).

Z poważaniem
L
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Linda,
Możesz rozwiązać problem bez użycia kodu VBA.
Kliknij komórkę prawym przyciskiem myszy i wybierz Formatuj komórki z menu kontekstowego, odznacz pole Zablokowane na karcie Ochrona w oknie dialogowym. A następnie chroń arkusz roboczy hasłem.
Ten komentarz został zminimalizowany przez moderatora na stronie
Bardzo się ucieszyłem, że znalazłem ten post, ale potrzebuję trochę pomocy w ograniczeniu tego do jednego arkusza roboczego w skoroszycie z wieloma arkuszami. I musimy wiedzieć, jak to zrobić bez interwencji użytkownika... potrzebujemy tego jak najszybciej w skoroszycie, aby zapobiec błędom.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Poniższy kod VBA może pomóc w rozwiązaniu problemu. I nie zapomnij zastąpić „Sheet2” w kodzie nazwą swojego arkusza.

Publiczna nazwa mJWSName jako ciąg

Private Sub Workbook_Open ()
mJWSName = "Arkusz2"
End Sub

Private Sub Workbook_Activate ()
Jeśli ActiveSheet.Name = mJWSName Wtedy
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = Fałsz
End If
End Sub

Private Sub Workbook_Deactivate ()
Application.OnKey "^c", ""
Application.CellDragAndDrop = Prawda
Application.CutCopyMode = False
End Sub


Private Sub Workbook_WindowActivate (ByVal Wn As Window)
Jeśli ActiveSheet.Name = mJWSName Wtedy
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = Fałsz
End If
End Sub

Private Sub Workbook_WindowDeactivate (ByVal Wn As Window)
Application.OnKey "^c"
Application.CellDragAndDrop = Prawda
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetSelectionChange (ByVal Sh jako obiekt, ByVal Target jako zakres)
On Error Resume Next
Jeśli Sh.Name = mJWSName Wtedy
Application.CutCopyMode = False
End If
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh jako obiekt)
On Error Resume Next
Jeśli Sh.Name = mJWSName Wtedy
Application.OnKey "^c", ""
Application.CellDragAndDrop = Fałsz
Application.CutCopyMode = False
End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.OnKey "^c"
Application.CellDragAndDrop = Prawda
Application.CutCopyMode = False
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Ostatnie pytanie — dokąd idzie ten kod i jak jest wykonywany? Projekt, z którym musi pracować, dołącza plik XLA do arkusza Excela, który zawiera znaczną część kodu. Nie wiem, czy to musi przejść do modułu lub kodu za tym arkuszem. Dzięki...
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję za wskazówki. Próbuję w biurze 2013, ale nic się nie zmieniło.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, kod działa dobrze, dzięki.
Jednak opcja tylko do odczytu została włączona. (jeśli nie chcesz modyfikować). Jeśli ustawię ..Plik, zapisz jako, narzędzia, opcje ogólne, tylko do odczytu zalecane.. to kod nie działa.

Z góry dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
To naprawdę dobrze działa, wielkie dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki temu działa perfekcyjnie ....czy da się ją tylko jakoś nałożyć na zakres?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzień dobry,
Przepraszam, nie mogę ci w tym pomóc. Zapraszamy do zadawania pytań na naszym forum: https://www.extendoffice.com/forum.html. Dziękuję za Twój komentarz.
Ten komentarz został zminimalizowany przez moderatora na stronie
DZIEKUJE PANU
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję, bardzo przydatne.
Ten komentarz został zminimalizowany przez moderatora na stronie
wytnij kopiuj wklej odpowiedni Cały skoroszyt. Jeśli potrzebuję tego kodu tylko w konkretnym arkuszu. Czy jest to możliwe?
proszę pomóż. potrzebujemy tylko jednego arkusza wyłączającego funkcje. inny arkusz pracujemy wszystkie funkcje...
Ten komentarz został zminimalizowany przez moderatora na stronie
Ten kod nie działa w moim Excelu 2016 dla pojedynczego arkusza zamiast całego skoroszytu
Ten komentarz został zminimalizowany przez moderatora na stronie
To nadal pozwala na wklejanie z Notatnika lub Microsoft Edge. Sprawdź, czy istnieje sposób, aby zapobiec wklejaniu z dowolnego źródła.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Jeśli uniemożliwisz wklejanie z dowolnego źródła, musimy wyłączyć funkcję Notatnika, która może powodować niedogodności. Nie polecamy tego. Przepraszam, nie mogę ci w tym pomóc.
Ten komentarz został zminimalizowany przez moderatora na stronie
Użyłem tego kodu i chcesz ponownie włączyć? jak to ponownie włączyć?
Ten komentarz został zminimalizowany przez moderatora na stronie
użyj tego kodu, aby wyłączyć kopiowanie wycinania i wklejania



Private Sub Workbook_Activate ()

Application.CutCopyMode = False

Application.OnKey "^c", ""

Application.CellDragAndDrop = Fałsz

End Sub



Private Sub Workbook_Deactivate ()

Application.CellDragAndDrop = Prawda

Application.OnKey "^c"

Application.CutCopyMode = False

End Sub



Private Sub Workbook_WindowActivate (ByVal Wn As Window)

Application.CutCopyMode = False

Application.OnKey "^c", ""

Application.CellDragAndDrop = Fałsz

End Sub



Private Sub Workbook_WindowDeactivate (ByVal Wn As Window)

Application.CellDragAndDrop = Prawda

Application.OnKey "^c"

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetSelectionChange (ByVal Sh jako obiekt, ByVal Target jako zakres)

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetActivate(ByVal Sh jako obiekt)

Application.OnKey "^c", ""

Application.CellDragAndDrop = Fałsz

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Application.CutCopyMode = False

End Sub





i chcesz ponownie włączyć te funkcje
Ten komentarz został zminimalizowany przez moderatora na stronie
Działa to świetnie, jak można to zmodyfikować, aby umożliwić kopiowanie/wklejanie w określonych kolumnach, które mają rozwijane menu powiązane z nazwanymi zakresami dopuszczalnych danych wejściowych i tylko dopuszczalnymi danymi wejściowymi. Na przykład imię, które brzmi Jetson, George, 25 lat, pozwoliłoby skopiować/wkleić Jetson, George, 25 lat, ale nie pozwoliłoby na Jeston, George, 26 lat. Lub przeciągnięcie i wypełnienie, które dałoby Jetson, George, 25, a następnie 26 , potem 27 itd.
W moim arkuszu roboczym chcę całkowicie wyłączyć wycinanie / kopiowanie / wklejanie w niektórych kolumnach, a następnie zezwolić tylko na wycinanie, kopiowanie i wklejanie akceptowalnych danych z list rozwijanych.
Dziękuję Ci.
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
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