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

Как отключить функции вырезания, копирования и вставки в Excel?

Предположим, у вас есть рабочая книга с важными данными, которые нужно защитить от вырезания, копирования и вставки. Как этого добиться? В этой статье представлен метод VBA, с помощью которого вы можете одновременно отключить функции вырезания, копирования и вставки в книге Excel.

Отключить функции вырезания, копирования и вставки с кодом VBA


Отключить функции вырезания, копирования и вставки с кодом VBA

Чтобы отключить функции вырезания, копирования и вставки в книге Excel, сделайте следующее.

1. В книге вам нужно отключить функции вырезания, копирования и вставки, нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окно, пожалуйста, дважды щелкните Эта рабочая тетрадь слева Проекты под застройку панели, а затем скопируйте и вставьте приведенный ниже код VBA в ThisWorkbook (Код) окно. Смотрите скриншот:

Код VBA: отключение функций вырезания, копирования и вставки одновременно в 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. Затем нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.

Теперь вы не можете вырезать или копировать данные из этой книги, а данные, которые вы скопировали с других листов или книг, не могут быть вставлены в эту книгу.

Внимание: Функция перетаскивания также отключается после выполнения вышеуказанного кода VBA.


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (50)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Я делаю, как указано выше, но функция вырезания копии и вставки отключена в любом файле Excel, который я открываю. Почему?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я использовал это, чтобы скрыть «Вырезать» от пользователей, и это прекрасно работает, если у вас нет таблицы, «Вырезать» чудесным образом снова появляется, когда вы выбираете ячейку в таблице, именно этого я пытаюсь избежать. Любые идеи? Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, сэр, это работает. Но во всей книге. Если мне нужен этот код только на конкретном листе. Возможно ли это ??
Этот комментарий был сведен к минимуму модератором на сайте
вы нашли ответ?
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо. Работает во всей книге. Можем ли мы сделать кодирование только для 1 листа. Пожалуйста, помогите.
Этот комментарий был сведен к минимуму модератором на сайте
Как включить функцию вырезания, копирования и вставки обратно? Пожалуйста посоветуй!
Этот комментарий был сведен к минимуму модератором на сайте
Дорогое небо
Запустите приведенный ниже VBA1 (поместите код в модуль ThisWorkbook), чтобы отключить функцию вырезания, копирования и вставки в вашей книге.

VBA1:
Sub DelCopy ()
С применением
.OnKey "^x", ""
.OnKey "^c", ""
.CommandBars("Ячейка").Controls(1).Enabled = False
.CommandBars("Ячейка").Controls(2).Enabled = False
Конец с
End Sub

И запустите VBA2, чтобы включить все эти функции обратно в вашу книгу.

VBA2:
Sub RecoverCopy ()
С применением
.ОнКей "^х"
.ОнКей "^с"
.CommandBars("Ячейка").Controls(1).Enabled = Истина
.CommandBars("Ячейка").Controls(2).Enabled = Истина
Конец с
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Похоже, это не сработало для меня - должен ли я удалить исходный код VBA, а затем вставить вышеприведенное, чтобы снова включить функцию «Вырезать, скопировать и вставить»?
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Приведенный выше комментарий VBA1 является заменой исходного кода.
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемые,

я хочу отключить вырезание, копирование, вставку в листе Excel 2007
можете поделиться кодом для этого
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Спасибо за ваш комментарий. Я пытаюсь найти решение для Excel 2007. Подождите терпеливо.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Можно ли отключить только "CUT"? но я все еще мог бы использовать Копировать и Вставить?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Кармело,
Скопируйте и вставьте приведенный ниже код в окно кода книги в своей книге, а затем сохраните его как книгу Excel с поддержкой макросов. Тогда функция «Вырезать» будет отключена.

Вариант Явный
Private WithEvents Cmbrs As CommandBars

Private Sub Workbook_Open ()
Установите Cmbrs = Application.CommandBars
End Sub

Private Sub Workbook_Activate ()
Если Application.CutCopyMode = 2 Тогда
Приложение.CutCopyMode = 0
End If
End Sub

Частная подписка Cmbrs_OnUpdate()
Если я ActiveWorkbook, то
Если Application.CutCopyMode = 2 Тогда
Приложение.CutCopyMode = 0
MsgBox "Операции вырезания отключены"
End If
End If
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я пытался так же, как вы сказали, но ничего не происходит. Хочу точно такой же, Только
Функция "Вырезать" отключена. Мне нужно отключить опцию «вырезать» из опции правой кнопки мыши и с панели инструментов.
Возможно кристалл??
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Код работает хорошо в моем случае. Могу я узнать вашу версию Office?
Этот комментарий был сведен к минимуму модератором на сайте
Hi

Я новичок в кодах VBA, и этот код решил 99% моих проблем.

Можно ли заблокировать лист с отверстиями (как этот код), но при этом одна ячейка будет разблокирована?
(Уточняю, я хотел бы разрешить копирование информации только в одну ячейку в листе отверстий).

С наилучшими пожеланиями
L
Этот комментарий был сведен к минимуму модератором на сайте
Привет Линда,
Вы можете решить проблему, не используя код VBA.
Щелкните правой кнопкой мыши ячейку и выберите «Формат ячеек» в контекстном меню, снимите флажок «Заблокировано» на вкладке «Защита» в диалоговом окне. А затем защитите лист паролем.
Этот комментарий был сведен к минимуму модератором на сайте
Был очень рад найти этот пост, но мне нужна небольшая помощь, чтобы ограничить его одним рабочим листом в рабочей книге с несколькими листами. И нужно знать, как выполнить это без вмешательства пользователя... нам нужно это как можно скорее в рабочей книге, чтобы предотвратить ошибки.
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Следующий код VBA может помочь вам решить проблему. И не забудьте заменить «Sheet2» в коде на имя вашего листа.

Публичное mJWSName как строка

Private Sub Workbook_Open ()
mJWSName = "Лист2"
End Sub

Private Sub Workbook_Activate ()
Если ActiveSheet.Name = mJWSName Тогда
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = Ложь
End If
End Sub

Частная вспомогательная книга_Deactivate ()
Application.OnKey "^c", ""
Application.CellDragAndDrop = Истина
Application.CutCopyMode = False
End Sub


Private Sub Workbook_WindowActivate (ByVal Wn As Window)
Если ActiveSheet.Name = mJWSName Тогда
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = Ложь
End If
End Sub

Private Sub Workbook_WindowDeactivate (ByVal Wn As Window)
Application.OnKey "^c"
Application.CellDragAndDrop = Истина
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)
On Error Resume Next
Если Sh.Name = mJWSName Тогда
Application.CutCopyMode = False
End If
End Sub

Private Sub Workbook_SheetActivate (ByVal Sh As Object)
On Error Resume Next
Если Sh.Name = mJWSName Тогда
Application.OnKey "^c", ""
Application.CellDragAndDrop = Ложь
Application.CutCopyMode = False
End If
End Sub

Private Sub Workbook_SheetDeactivate (ByVal Sh As Object)
Application.OnKey "^c"
Application.CellDragAndDrop = Истина
Application.CutCopyMode = False
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Последний вопрос: куда идет этот код и как он выполняется? Проект, с которым необходимо работать, прикрепляет файл XLA к листу Excel, содержащему большую часть кода. Не знал, нужно ли это помещать в модуль или код, стоящий за этим листом. Спасибо...
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за ваше направление. Я пытаюсь работать в офисе 2013, но ничего не изменилось.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, код работает хорошо, спасибо.
Однако опция только для чтения была включена. (если вы не хотите изменять). Если я установил ..Файл, сохранить как, инструменты, общие параметры, рекомендуется только для чтения ... тогда код не работает.

Заранее спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Это действительно хорошо работает, большое спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, это работает отлично .... можно ли как-то применить его только к диапазону?
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Извините, не могу вам в этом помочь. Добро пожаловать, чтобы разместить любой вопрос на нашем форуме: https://www.extendoffice.com/forum.html. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
СПАСИБО, СЭР
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, очень полезно.
Этот комментарий был сведен к минимуму модератором на сайте
вырезать копировать вставить применимо Вся книга. Если мне нужен этот код только на конкретном листе. Возможно ли это ??
пожалуйста помоги. нам нужен только один лист отключить функции. другой лист мы работаем все функции...
Этот комментарий был сведен к минимуму модератором на сайте
Этот код не работает в моем excel 2016 для одного листа, а не для всей книги.
Этот комментарий был сведен к минимуму модератором на сайте
Это по-прежнему позволяет вставлять из Блокнота или Microsoft Edge. Пожалуйста, посмотрите, есть ли способ предотвратить вставку из любого источника.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Если запретить вставку из любого источника, нам нужно запретить функцию «Блокнот», которая может доставлять неудобства. Мы не рекомендуем это. Извините, я не могу помочь вам в этом.
Этот комментарий был сведен к минимуму модератором на сайте
Я использовал этот код и хочу снова включить? как снова включить?
Этот комментарий был сведен к минимуму модератором на сайте
используйте этот код, чтобы отключить копирование, вырезание и вставку



Private Sub Workbook_Activate ()

Application.CutCopyMode = False

Application.OnKey "^c", ""

Application.CellDragAndDrop = Ложь

End Sub



Частная вспомогательная книга_Deactivate ()

Application.CellDragAndDrop = Истина

Application.OnKey "^c"

Application.CutCopyMode = False

End Sub



Private Sub Workbook_WindowActivate (ByVal Wn As Window)

Application.CutCopyMode = False

Application.OnKey "^c", ""

Application.CellDragAndDrop = Ложь

End Sub



Private Sub Workbook_WindowDeactivate (ByVal Wn As Window)

Application.CellDragAndDrop = Истина

Application.OnKey "^c"

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetSelectionChange (ByVal Sh как объект, ByVal Target как диапазон)

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetActivate (ByVal Sh As Object)

Application.OnKey "^c", ""

Application.CellDragAndDrop = Ложь

Application.CutCopyMode = False

End Sub



Private Sub Workbook_SheetDeactivate (ByVal Sh As Object)

Application.CutCopyMode = False

End Sub





и хотите снова включить эти функции
Этот комментарий был сведен к минимуму модератором на сайте
Это прекрасно работает, как можно изменить это, чтобы разрешить копирование/вставку в определенные столбцы, которые имеют раскрывающиеся меню, привязанные к именованным диапазонам допустимого ввода и только допустимому вводу. Например, имя Джетсон, Джордж, 25 лет, позволит скопировать/вставить Джетсон, Джордж, 25 лет, но не позволит Джестон, Джордж, 26 лет. , затем 25 и т.д.
На моем листе я хочу полностью отключить вырезание/копирование/вставку в определенных столбцах, а затем разрешить вырезать и копировать вставку только приемлемых данных из раскрывающихся списков.
Спасибо.
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL