Прескочи на основното съдържание

Как да предотвратите копиране и поставяне върху клетка с падащ списък в Excel?

Автор: Силувия Последна промяна: 2020-09-03

За клетка с падащ списък за валидиране на данни, когато копирате съдържание от друга клетка и го поставите в нея, падащият списък ще изчезне и ще бъде заменен с новото съдържание за поставяне. В някои случаи искате да предотвратите копиране и поставяне на друго съдържание върху клетката с падащ списък, какво бихте направили, за да се справите с това? В тази статия ще получите 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:

- Падащ списък с квадратчета за отметка полезност на Kutools за Excel може да ви помогне лесно да създадете падащ списък с квадратчета за отметка в определен диапазон, текущ работен лист, текуща работна книга или всички отворени работни книги въз основа на вашите нужди.
Изтеглете пълната 30-дневна безплатна пътека на Kutools за Excel сега!


Още по темата:

Как да създадете падащ списък с множество квадратчета за отметка в Excel?
Много потребители на Excel са склонни да създават падащ списък с множество квадратчета за отметка, за да избират няколко елемента от списъка наведнъж. Всъщност не можете да създадете списък с множество квадратчета за отметка с валидиране на данни. В този урок ще ви покажем два метода за създаване на падащ списък с множество квадратчета за отметка в Excel. Този урок предоставя метода за решаване на проблема.

Създайте падащ списък от друга работна книга в Excel
Доста лесно е да създадете падащ списък за валидиране на данни сред работни листове в работна книга. Но ако списъчните данни, от които се нуждаете за валидирането на данните, се намират в друга работна книга, какво бихте направили? В този урок ще научите как да създадете падащ собствен списък от друга работна книга в Excel в подробности.

Създайте падащ списък с възможност за търсене в Excel
За падащ списък с многобройни стойности намирането на подходящ не е лесна работа. По-рано въведохме метод за автоматично попълване на падащия списък, когато въведете първата буква в падащото поле. Освен функцията за автоматично довършване, можете също да направите падащия списък достъпен за търсене, за да подобрите работната ефективност при намиране на правилните стойности в падащия списък. За да направите падащия списък годен за търсене, опитайте метода в този урок.

Автоматично попълване на други клетки при избиране на стойности в падащия списък на Excel
Да приемем, че сте създали падащ списък въз основа на стойностите в диапазона от клетки B8:B14. Когато избирате която и да е стойност в падащия списък, искате съответните стойности в диапазона от клетки C8:C14 да бъдат автоматично попълнени в избрана клетка. За решаването на проблема, методите в този урок ще ви направят услуга.

Още уроци за падащия списък...

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I works BUT after you put the code you cannot UNDO anything. Not a single step back is allowed.
This comment was minimized by the moderator on the site
No, I did not figure it out. I didn't try to resolve after a while.
This comment was minimized by the moderator on the site
did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
This comment was minimized by the moderator on the site
Hi Dilip, are you able to fix the issue of allowing data using paste values
This comment was minimized by the moderator on the site
Hi Dilip, are you able to fix the issue of allowing data using paste values..i am also facing the same issue..help me on this please
This comment was minimized by the moderator on the site
Thank you very much !! works fine for me !!! copying into a single cell is restricted. but if i copy a list of cells and paste.., the paste is accepted. let me see if i can tune this up ..thanks anyways
This comment was minimized by the moderator on the site
Jepson, did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
This comment was minimized by the moderator on the site
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String If Target.Count > 1 Then Exit Sub End If Application.EnableEvents = False xValue = Target.Value On Error Resume Next xCheck1 = Target.Validation.InCellDropdown On Error GoTo 0 Application.Undo On Error Resume Next xCheck2 = Target.Validation.InCellDropdown On Error GoTo 0 If xCheck1 = xCheck2 Then Target = xValue Else MsgBox "No pasting allowed!" End If Application.EnableEvents = True End Sub This Macro not work when copy from different workbook or worksheet then so please tell me how to avoid these things also
This comment was minimized by the moderator on the site
Hi, above mention vba code is not run.kindly resolve.
This comment was minimized by the moderator on the site
Hi, While I running this macro I got this debug error "Application.Undo". Pls resolve this ASAP
This comment was minimized by the moderator on the site
This works but when I paste value this is allowing data which is not from the drop down list. Any way to restrict any value which is not from the list.
This comment was minimized by the moderator on the site
Hi Dilip, Did you able to resolve the issue, i too having similar issue. I have to allow copy,paste only for drop down values in the data validation cell other i have to restrict. Can you share your solution. Thanks Rao
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations