Как запретить копирование и вставку в ячейку с выпадающим списком в Excel?
Выпадающие списки проверки данных — эффективный инструмент для контроля типа информации, вводимой в определённые ячейки Excel, что гарантирует согласованность и целостность данных на ваших листах. Однако часто возникает проблема: при копировании содержимого из другой ячейки и его вставке в ячейку с выпадающим списком правило проверки данных удаляется, а сам список пропадает. Это может привести к потере правил проверки и нарушению логики таблицы, особенно когда ввод пользователя должен быть строго ограничен вариантами из выпадающего списка.
Чтобы сохранить целостность ячеек с выпадающими списками, рекомендуем запретить пользователям вставку данных в них. Это гарантирует, что вся информация в этих ключевых полях будет строго соответствовать заданным ограничениям и допустимым вариантам. В этом руководстве вы узнаете, как эффективно блокировать операции копирования и вставки в ячейки с выпадающими списками с помощью VBA. Метод идеально подходит для форм, шаблонов с контролируемым вводом и любых листов, где качество данных имеет первостепенное значение.
Запрет копирования и вставки в ячейку с выпадающим списком в Excel
Запрет копирования и вставки в ячейку с выпадающим списком в Excel
Чтобы защитить выпадающие списки от перезаписи вставленным содержимым, используйте VBA на том листе, где расположены эти ячейки. Выполните следующие действия:
1. Откройте лист, содержащий выпадающие списки, которые нужно защитить.
2. Нажмите Alt + F11, чтобы открыть окно Visual Basic для приложений.
3. В левой панели дважды щелкните нужный лист (но не «ЭтаКнига»). Вставьте приведённый ниже код VBA в редактор кода:

Код VBA: запрет вставки поверх выпадающего списка
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice
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. Нажмите Alt + Q, чтобы закрыть редактор VBA и вернуться в Excel.
5. Попробуйте вставить данные в ячейку с выпадающим списком — появится сообщение, запрещающее вставку, и список останется без изменений:

Примечание и ограничения:
Этот код VBA предназначен только для вставки в одну ячейку. Он может не предотвратить потерю проверки данных при вставке в несколько ячеек — обязательно сообщите об этом пользователям.
Советы по устранению неполадок:
- Убедитесь, что код размещён в модуле нужного листа, а не в общем модуле.
- Включайте макросы при открытии файла.
- Внимательно проверяйте код на наличие ошибок, связанных с копированием и вставкой.
- Протестируйте макрос на тестовом файле, прежде чем использовать его с реальными данными.
Альтернативные решения:
Легко создавайте Раскрывающийся список с флажками в Excel:
Утилита Добавить флажки в выпадающий список из Kutools для Excel позволяет легко создавать раскрывающиеся списки с флажками в ограниченном диапазоне, на текущем листе, в текущей книге или во всех открытых книгах — в зависимости от ваших задач.
Скачайте полную версию Kutools для Excel с бесплатной пробной версией на 30 дней прямо сейчас!
Связанные статьи:
Как создать выпадающий список с несколькими флажками в Excel?
Многие пользователи Excel хотят создать выпадающий список с несколькими флажками, чтобы выбирать сразу несколько значений. На самом деле, стандартная проверка данных не позволяет реализовать такой функционал. В этом руководстве мы покажем два эффективных способа создания выпадающего списка с возможностью множественного выбора — и подробно разберём, как решить эту задачу.
Создание выпадающего списка из другой книги в Excel
Создать выпадающий список проверки данных между листами одной и той же книги — довольно просто. Но что делать, если исходные данные для проверки находятся в другой книге? В этом руководстве подробно объясняется, как создать выпадающий список в Excel на основе данных из другой книги.
Создание выпадающего списка с возможностью поиска в Excel
Когда в выпадающем списке много значений, найти нужное бывает непросто. Ранее мы уже рассказывали о методе автозавершения — когда список автоматически прокручивается к элементам, начинающимся с введённой буквы. Но помимо автозавершения вы можете сделать выпадающий список полностью доступным для поиска, чтобы ещё больше ускорить выбор нужных значений. Как реализовать поиск в выпадающем списке — подробно описано в этом руководстве.
Автоматическое заполнение других ячеек при выборе значения из выпадающего списка в Excel
Допустим, вы создали выпадающий список на основе диапазона ячеек B8:B14. Как только вы выбираете значение из этого списка, соответствующие данные из диапазона C8:C14 автоматически подставляются в нужную ячейку. Методы, описанные в этом руководстве, помогут вам легко реализовать такую функциональность.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек