Как запретить вставку ячеек в excel

 

Коллеги, имеется вопрос: У меня есть столбец в котором я могу выбирать значения ячеек только с помощью списка валидатора. Все хорошо, если делать ручками, однако смысл списка теряется, если вставить в данное поле скопированные ячейки…  ВОПРОС: КАК МНЕ БЫТЬ?))) ЗАРАНЕЕ БЛАГОДАРЕН.

 

Списку неважно — руками вы ввели, или скопировали. Другое дело, если значение получено с помощью формулы. Если это так, то и вопрос нужно строить соответственно. Это РАЗНЫЕ ВЕЩИ. А вы про копирование говорите.

 

{quote}{login=}{date=04.08.2008 02:15}{thema=}{post}Списку неважно — руками вы ввели, или скопировали. Другое дело, если значение получено с помощью формулы. Если это так, то и вопрос нужно строить соответственно. Это РАЗНЫЕ ВЕЩИ. А вы про копирование говорите.{/post}{/quote}  

  Хорошо, сформулирую иначе: как мне сделать так, чтобы в определенную ячейку/диапазон нельзя было бы вставить скопированное значение, но можно было выбрать из списка!

 

Все дело в тоМ, что формулу я не использую… ВЛУКАП там не уместен…

 

Просто защитите нужные ячейки от изменений

 

{quote}{login=}{date=04.08.2008 02:36}{thema=}{post}Просто защитите нужные ячейки от изменений{/post}  

    Это, конечно, хорошо, но не получится выбрать значение с помощью валидатора. Все сделано для того, чтобы нерадивые смогли выбрать значение только из списка, а не копировали туда все подряд…

 

Тогда от нерадивый скройте лист с «базой»

 
 

{quote}{login=}{date=04.08.2008 02:57}{thema=}{post}Тогда от нерадивый скройте лист с «базой»{/post}{/quote}  

  Нерадивые ДОЛЖНЫ заполнять базу руками. Для этого я им предоставляю возм-ть пользоваться списками, однако некоторые хитрецы копируют и вставляют, что мне абс ненужно.

 

Тогда (как вариант): заполнение через форму. Лист будет скрыт. У нерадивого (если уж нельзя его обучить или дат ему по башке) будет только одно окошко для ввода. По кнопочке ОК данные занесутся в «Базу» (Список).

 

{quote}{login=}{date=04.08.2008 03:14}{thema=}{post}Тогда (как вариант): заполнение через форму. Лист будет скрыт. У нерадивого (если уж нельзя его обучить или дат ему по башке) будет только одно окошко для ввода. По кнопочке ОК данные занесутся в «Базу» (Список).{/post}{/quote}  

  ОК, сейчас попробую))) ПАСИБА!

 

а как вы различаете ситуации  
1)нерадивый втавил то что нужно с помощью списка  
2)нерадивый вставил то что нужно с помошью shift-insert  
3)нерадивый вбил то что нужно в строке формул  

  может вам просто хочется чтоб введённое значение обязательно принадлежало введённому вами списку допустимых значений?

 

{quote}{login=}{date=04.08.2008 03:21}{thema=}{post}а как вы различаете ситуации  
1)нерадивый втавил то что нужно с помощью списка  
2)нерадивый вставил то что нужно с помошью shift-insert  
3)нерадивый вбил то что нужно в строке формул  

  может вам просто хочется чтоб введённое значение обязательно принадлежало введённому вами списку допустимых значений?{/post}{/quote}  

    Да, пожалуй именно этого я и хочу)))

 

kaa

Пользователь

Сообщений: 508
Регистрация: 01.01.1970

дык в данные — проверка наверняка есть галка «список допустимых значений». при вводе значений, отличных от него эксёл может вполне ругацца матом, если его этому научить… :)

 

Kaa, скорее всего разговор о том, чтобы пополнять этот самый список… Опять гадаем.

 

{quote}{login=kaa}{date=04.08.2008 03:28}{thema=}{post}дык в данные — проверка наверняка есть галка «список допустимых значений». при вводе значений, отличных от него эксёл может вполне ругацца матом, если его этому научить… :){/post}{/quote}  

  Если знаете как, научите меня пожалуйста!!! БУДУ очень благодарен!!!

 

Ах вон оно в чем дело! Я то думал это пройденный этап. Тогда так? Меню Данные — Проверка — Список. Показываем диапазон. Еслу поругацца — смотрим закладку сообщение об ошибках.

 

ГАДАТЬ НЕ НАДО. В ПРИКР ФАЙЛЕ НА ПЕРВОМ ЛИСТЕ УПРОЩ ФОРМА ТОГО, ЧТО МНЕ НАДО. ЕСЛИ ПРОСТО ВЫБИРАТЬ МОДЕЛЬ ИЗ СПИСКА — ВСЕ ХОРОШО. Теперь попробуйте скопировать ERICSSON справа и вставить в поле под MANUF…  То же самое с числом. Я поставил на модел ограничение 5 символов. Если руками — все гут, если скопировать огромное число справа и вставить туда — оно вставится… Теперь поняли меня?

 

Вот насчет «Гадать не надо» — вы АБСОЛЮТНО правы — нужно сразу файл выкладывать.

 

Думал, Вы меня со слов поймете… Не поняли… Ну да ладно)))

 

Так ведь опять вам в Данные — проверка. Ставьте ограничение и на к-во символов. В чем проблема?

 
 

попробуйте после настройки ваших списков допустимых значений для ячейки    
в ячейке поставить  
защита-защитить формулу,  
а защиту ячейки соответственно убрать.  
после защитить лист.

 

Давайте уточнимся. Вам нужно осуществлять ввод только из заданного набора значений. При попытке ввести что-либо вручную — матерные слова с воплями. Но при этом нужно исключить возможность ввода при помощи копипаст. Так?

 

{quote}{login=}{date=04.08.2008 04:30}{thema=}{post}попробуйте после настройки ваших списков допустимых значений для ячейки    
в ячейке поставить  
защита-защитить формулу,  
а защиту ячейки соответственно убрать.  
после защитить лист.{/post}{/quote}  

  разумеется незащитить формулу а скрыть формулу  
вот ваш пример  
парользащиты листа 111

 

{quote}{login=}{date=04.08.2008 04:30}{thema=}{post}Давайте уточнимся. Вам нужно осуществлять ввод только из заданного набора значений. При попытке ввести что-либо вручную — матерные слова с воплями. Но при этом нужно исключить возможность ввода при помощи копипаст. Так?{/post}{/quote}  

  Да, все верно для поля МАНУФ. Для поля модель — необх ввести вручную ровно 5 цифр, иначе мат и ругань. ОК?

 

Для ограничения 5 цифр — проблемы нет. А вот для ввода названия я бы использовал комбобокс. Попробуйте. По крайней мере по правой кнопке вставить не удастся. Из меню Правка тоже.

 

{quote}{login=}{date=04.08.2008 05:24}{thema=}{post}Для ограничения 5 цифр — проблемы нет. А вот для ввода названия я бы использовал комбобокс. Попробуйте. По крайней мере по правой кнопке вставить не удастся. Из меню Правка тоже.{/post}{/quote}  

  Мне неудобно спрашивать — поподробнее насчет комбобокса, ПОЖАЛУЙСТА.

 

Страшновато, но встряну в разговор с призраками (Отца_Гамлета/Коммунизма/???).    
Может, все-таки, не будете пугать, и станете подписываться?  

  Если события специально не отключены, то чтобы не копировалось на списках, можно, например, в коде листа записать:  

  Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
On Error Resume Next  
If Target.Validation.Type = 3 Then  
Application.CutCopyMode = False  
End If  
End Sub

 

Guest

Гость

#30

04.08.2008 18:50:07

{quote}{login=:)}{date=04.08.2008 06:00}{thema=}{post}Страшновато, но встряну в разговор с призраками (Отца_Гамлета/Коммунизма/???).    
Может, все-таки, не будете пугать, и станете подписываться?  

  Если события специально не отключены, то чтобы не копировалось на списках, можно, например, в коде листа записать:  

  Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
On Error Resume Next  
If Target.Validation.Type = 3 Then  
Application.CutCopyMode = False  
End If  
End Sub{/post}{/quote}  

  ещё предусмотреть  
   Application.OnKey «^v», «MyPasteValues»  
   Application.OnKey «^{Insert}», «MyPasteValues»  
   Application.OnKey «+{Insert}», «MyPasteValues»  
   Application.OnKey «~», «MyPasteValues»  
   Application.OnKey «{Enter}», «MyPasteValues»  
еще принудить пользователя не отключать макросы…  

  ну думаю всплывёт ещё всякого.  

  НЕ ТЕНИ А IP!!!

Запрет вставки с буфера обмена в ячейку

Irinka@M

Дата: Вторник, 31.01.2017, 09:54 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Добрый день. подскажите, пожалуйста, как запретить вставку с буфера обмена в конкретную ячейку.

 

Ответить

_Boroda_

Дата: Вторник, 31.01.2017, 10:03 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Можно защитить ячейку.
Можно вот такой вариант макросом в модуле листа
[vba]

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range(«C3»)) Is Nothing Then Application.CutCopyMode = 0
End Sub

[/vba]
Можно еще что-нибудь придумать


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Irinka@M

Дата: Вторник, 31.01.2017, 10:45 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Спасибо, большое. Получилось)

 

Ответить

Alex_ST

Дата: Вторник, 31.01.2017, 13:40 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

К сожалению, этот метод подходит исключительно для запрета вставки скопированных диапазонов (ячеек), т.к. они вставляются из буфера обмена Excel’я, в котором хранится ссылка на объект Range со всеми его причиндалами (форматированием, формулами, валидацией и т.д.)
А если скопирован, например, текст, то виндовый буфер не чистится и вставка проходит нормально.



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

Alex_ST

Дата: Вторник, 31.01.2017, 14:21 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3176


Репутация:

604

±

Замечаний:
0% ±


2003

Можно, конечно, просто стирать виндовый буфер при обращении к ячейкам, куда копирование нужно запретить.
Но тогда если всё-таки нажать «Вставить», информация, которая была в выбранной ячейке, затрётся (но это можно отменить, в отличие от работы обычного макроса[vba]

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range(«C1»)) Is Nothing Then ClearClipBoard
End Sub

Sub ClearClipBoard()    ‘ очистить буфер обмена
   With GetObject(«New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}»)
      .SetText «»
      .PutInClipBoard
   End With
End Sub

[/vba]



С уважением,
Алексей
MS Excel 2003 — the best!!!

Сообщение отредактировал Alex_STВторник, 31.01.2017, 14:21

 

Ответить

Как запретить copy-paste на листах эксель?
Есть сложный документ, нагруженый форматируемыми ячейками, условными форматами и т.п. мутью. Часто возникает необходимость переностить данные из одного файла эксель в этот крутой, и ясен пень, особогениальные сотрудники делают это методом копи-пейст. При этом слетают условные форматирования, форматы ячеек — я уж молчу про границы и заливки. Вербальные и даже анальные внушения на предмет того точбы это не делать и перености рукаи не помогют — собственно хоче запретить это в самом файле.

Желательно чтобы выводилось сообщение о запрете или что-то в этом духе.


можно убрать возможность выделения ячеек, соответственно нельзя «в лоб» выделить и скопировать ячейки
В екселе 2003: пункт меню Сервис-Защита-Защитить лист и настраиваешь защиту по пунктам
В екселе 2007: вкладка Главная-блок Ячейки -Формат — Защитать лист… и настраиваешь защиту по пунктам

учти, что по умолчанию в формате ячеек по умолчанию включена защита ячейки (правая кнопка мышки по ячейке — Формат ячеек…- вкладка Защита)


Этот вариант совсем не катит — потому что должна оставатся возможность вносить значения РУКАМИ. Простыми, трудовыми, намазолеными менеджерскими руками… но БЕЗ возможности вставлять из буфера… ИЛИ если вставлять — то ТОЛЬКО значение — без форматирований, размеров текстов и т.п. чуши


Поппробуйте научить сотрудников вставлять только значения (ПКМ / специальная вставка) — эту функцию можно вывести на панельку и переназначить на нее сочетание клавишь Ctrl+V (если очень нужно). Но эту работу придется выполнять на каждой пользовательской машине.
Возможно VBA позволит сделать это лишь для указзанного файла.


Это как раз то что я сделал в первую очередь — запретил пользоваться обычной вставкой и научил юзать специальную. НО! выяснилось что даже при использовании специальной вставки вставляется не только значение но и условное_форматирование. Другими словами — действительно, вставляется только значение, но при этом впихивается и условное_форматирование… ИМХО это просто недоработка самого экселя — единственное решение которое я вижу это просто запретить использовать copy-paste полностью. Но если лист имеет структуру, защищён так чтобы часть ячеек редактировать а часть нет — то сделать это простыми методами нельзя… Мне бы подошёл и сложный — лишь бы он был…


Посмотрите такой вариант.
Кнопка на панели инструментов, в меню по ПКМ, комбинации Ctrl+v и Shift+Insert переназначены на вставку только значений, условное_форматирование не захватывается. Все это только на Лист1, в других листах и книгах все как обычно. Для нормальной встаки оставлен путь Правка-Вставить. Есть еще несколько путей обхода, но я думаю, что Вашим «особогениальным» не нужно будет их находить и поэтму не стал блокировать совсем все.

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


Если честно — совершенно не понял как это сделано и как перенести в свой файл…


Мне кажется что тут проще сделать макрос, который просто будет запрещать вставлять что-либо и как-либо, с всплывающем сообщением (ЗАПРЕЩЕНО!ЕПТ!)

только я не знаю как такой макрос сделать  :)


Да вот в том то и дело что просто запретить его нежелательно — нужно сделать так чтобы по дефолту вставлялись ТОЛЬКО значения либо простой текст.


А я вставил в меню ПКМ следующий пункт и чуствую себя «нормально» :)

Sub AddShortCut()
        With ComBar.Controls.Add(Type:=msoControlButton)
            .OnAction = "MyPaste"
            .FaceId = 22
            .Caption = "Вставить значение"
        End With
End Sub

Private Sub MyPaste()
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


Цитата: _Boroda_ от 23.07.2009, 14:22
Дак я ж так и сделал
Если не получается вставить макросы в свой файл или, как я уже писал, в мой файл с макросами вставить свою табличку — присылай кусочек своего файла (предполагаю, что весит он немало).

Да я бы с радостью — но у меня 8 менеджеров и у каждого такой файл свой… не все же 8 присылать — тем более что там есть инфа которую не хотелось бы публично светить. Поэтому хочу разобраться сам.

Что такое этот макрос? Где он хранится и куда его собсно вставлять?
Наивно полагал что это какая-то особо-сложная формула в ячейке — а это оказывается что-то роде программы внутри файла… вот это и вызывает сложности — начиная от простого переноса, заканчивая тем как это привязывать к нужным листам и т.п.


Из всех предложенных вариантов, ничего не понял…
помогите, мне тоже нужна такая возможность «запрета вставки»…
не ужели нет какого нить простого макроса, с запретом кнопки вставки…???


Находясь в среде Excel нажмите «Alt+F11», откроется окно редактора VBA
Раскройте VBAProject(«Ваша Книга«) …  в модуле «ЭтаКнига» вставьте следующий код


Private Sub Workbook_Open()
    With Application
        .OnKey "^{v}", "MyPaste"
        .OnKey "+{INSERT}", "MyPaste"
        .Run ("AddMyPaste")
    End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'восстанавливаем всё на место при выходе
    With Application
        .OnKey "^{v}"
        .OnKey "+{INSERT}"
        .CommandBars("Cell").Reset  ' Восстановление системного контекстного меню ячейки
    End With
End Sub

затем, ПКМ по VBAProject вызываем меню и добавляем(insert) новый модуль
в Вновь созданный модуль вставьте следующий код


Sub AddMyPaste()
    With CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
        .OnAction = "MyPaste"
        .FaceId = 22
        .Caption = "Вставить значение"
    End With
End Sub

Private Sub MyPaste()
On Error Resume Next
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
End Sub

во вложении файл с кодом

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


Что-то у меня все равно вставляется…

я копирую данные из другого ексел файла, и вставляю в пример из вложения… и все равно вставляется, даже с заливкой и с линиями….

не понятно((


 А макросы включили?
В меню ПКМ «Вставить значение» появилось?

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


сделал все как описано…

а что за меню ПКМ?  я делал написано:

Цитироватьзатем, ПКМ по VBAProject вызываем меню и добавляем(insert) новый модуль
в Вновь созданный модуль вставьте следующий код

и туда вставлял код


ПКМ — Правая Кнопка Мышки

Если Вы запускаете файл и Разрешаете запуск макросов, то в меню ПКМ на ячейке(когда выделена одна/группа ячеейк, а не строка или столбец) должен появиться новый пункт «Вставить значение», если такового не появилось, значит макросы отключены. Возможно, Вам надо сменить уровень безопасности Excel на менее «жесткий» (Сервис/Параметры/Безопасность/Безопасность макросов) Рекомендую «Среднюю» поставить.

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


все, я понял…. макрос работает….

только вот никакого запрета  copy-paste тут нет. Ведь необходимо чтобы вообще никак нельзя было вставить скопированное…

вот в чем вопрос…)


Что Вам мешает?
Включите воображение

Private Sub MyPaste()
      msgbox("Здесь нельзя вставить скопированное :)")
End Sub

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


Если через Ctrl +V или shift +insert, то вставку блокирует… но вот если вставлять через Правка — Вставить, то все равно вставляется. Можно ли как то и это заблокировать? :)


Если для Вас так важно, что бы изменения не вносились в лист, то не проще ли воспользоваться стандартными средствами (Защитить Лист)
Во вложении файл, который кроме клавишь отключает Вставку изо всех контекстных меню.
Это максимум, что я могу для Вас сделать.  ;)

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


спасибо!! все отлично работает)) ;)


boa
у меня опять проблема…запускал вам пример дома на 2007 excel’e, все работало… а вот на работе на 2003, почему то через Правка-Вставить, все равно вставляется… хотя в меню ПКМ — Вставить, блокируется…
непонятно((


Странно, в 2007-м тоже должно вставляться из меню панели
я не знаю как отключить эту вставку

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • запрет copy-paste

Настройка проверки данных

Вы захотите использовать функцию проверки данных в Excel, чтобы ограничить ячейки определенным текстом. В вашем случае: «Test1», «Test2» и «Test3»

  1. Выберите ячейки, которые должны принимать только значения «Test1», «Test2» и «Test3»
  2. На вкладке Данные в группе Инструменты данных, нажмите на кнопку проверки данных.

    Расположение проверки данных в ленте Office

  3. В раскрывающемся списке Разрешить: выберите Список

  4. В поле Источник: введите Test1, Test2, Test3

    Настройки проверки данных

  5. Нажмите кнопку ОК, чтобы применить изменения.

На этом этапе каждая ячейка, выбранная на шаге 1, будет иметь раскрывающийся список, связанный с ней. Пользователи электронной таблицы только будет в состоянии войти Test1, test2 или TEST3. Если они попытаются ввести что-то еще, они получат следующее сообщение об ошибке:

При желании вы можете настроить текст сообщения об ошибке, щелкнув вкладку « Предупреждение об ошибке » в шаге 4 сверху.

Запретить копирование / вставку данных проверенных ячеек

Это будет прекрасно работать, за исключением случая, когда кто-то вставляет содержимое поверх ячеек. Единственный способ предотвратить это — написать макрос, который обнаруживает обновления для ячеек, определяет, включена ли проверка данных в ячейках, и затем запрещает вставку, если это правда.

  1. Выберите все ячейки, которые имеют проверку данных и назовите их DataValidationRange. Вы можете назвать диапазоны ячеек, введя имя слева от строки формул, где расположен адрес ячейки.
  2. В модуле кода для рабочего листа (например, Sheet1) добавьте следующий код:
Private Sub Worksheet_Change(ByVal Target As Range)
    'Does the validation range still have validation?
    If HasValidation(Range("DataValidationRange")) Then
        Exit Sub
    Else
        Application.Undo
        MsgBox "Error: You cannot paste data into these cells." & _
        "Please use the drop-down to enter data instead.", vbCritical
    End If
End Sub

Private Function HasValidation(r) As Boolean
    'Returns True if every cell in Range r uses Data Validation
    On Error Resume Next
    x = r.Validation.Type
    If Err.Number = 0 Then HasValidation = True Else HasValidation = False
End Function

К сожалению, VBA — единственный способ не допустить того, чтобы кто-то вставил над ячейками. Это было проблемой с проверкой данных в Excel с самого начала. Надеюсь, это поможет в любом случае.

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

Запретить копирование и вставку ячейки с раскрывающимся списком в Excel


Запретить копирование и вставку ячейки с раскрывающимся списком в Excel

1. Откройте рабочий лист с ячейкой раскрывающегося списка, которую вы хотите запретить копировать и вставлять.

2. Нажмите другой + F11 клавиши одновременно, чтобы открыть Приложения Microsoft Visual Basic окно.

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

Код VBA: запретить копирование и вставку ячейки с раскрывающимся списком

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. Нажмите другой + Q ключи для выхода из Приложения Microsoft Visual Basic окно.

5. Когда вы вставляете содержимое в ячейку с раскрывающимся списком, появляется диалоговое окно, напоминающее вам, что вставка запрещена. Смотрите скриншот:

Внимание: Этот VBA просто работает при вставке одной ячейки. Если вы скопируете и вставите несколько ячеек, это не сработает.


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

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

Создать раскрывающийся список из другой книги в Excel
Создать раскрывающийся список проверки данных среди листов в книге довольно просто. Но если данные списка, необходимые для проверки данных, находятся в другой книге, что вы будете делать? В этом руководстве вы узнаете, как подробно создать раскрывающийся список из другой книги в Excel.

Создайте раскрывающийся список с возможностью поиска в Excel
Для раскрывающегося списка с многочисленными значениями найти подходящий — непростая задача. Ранее мы ввели метод автоматического заполнения раскрывающегося списка при вводе первой буквы в раскрывающемся списке. Помимо функции автозаполнения, вы также можете сделать раскрывающийся список доступным для поиска для повышения эффективности работы при поиске правильных значений в раскрывающемся списке. Чтобы сделать раскрывающийся список доступным для поиска, попробуйте метод, описанный в этом руководстве.

Автоматическое заполнение других ячеек при выборе значений в раскрывающемся списке Excel
Допустим, вы создали раскрывающийся список на основе значений в диапазоне ячеек B8: B14. При выборе любого значения в раскрывающемся списке необходимо, чтобы соответствующие значения в диапазоне ячеек C8: C14 автоматически заполнялись в выбранной ячейке. Для решения проблемы методы, описанные в этом руководстве, окажут вам услугу.

Дополнительные руководства для раскрывающегося списка …


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

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

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

вкладка kte 201905


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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (12)


Оценок пока нет. Оцените первым!

Понравилась статья? Поделить с друзьями:
  • Как запретить вносить изменения в ячейке excel
  • Как запретить вносить изменения в word
  • Как запретить внесение изменений в документ excel
  • Как запретить ввод данных в ячейку excel
  • Как запретить excel переводить числа в даты