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

Как да изчистя зависима клетка от падащ списък, след като изберете променена в Excel?

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

За зависим падащ списък, когато стойността на родителския падащ списък се промени, избраната стойност във втория ще бъде невалидна. Трябва ръчно да премахнете невалидната стойност от втория падащ списък, след като изберете променен в първия. В тази статия ще ви покажа метод за автоматично изчистване на зависимата клетка от падащ списък след избиране на променен в Excel.

Изчистване на зависима клетка от падащ списък след избиране, променена с VBA код


Изчистване на зависима клетка от падащ списък след избиране, променена с VBA код

Следният VBA код ви помага да изчистите зависими падащ списък, след като изберете променен в Excel.

1. Щракнете с десния бутон върху раздела на листа, който съдържа зависимия падащ списък, който ще изчистите автоматично, след което изберете Преглед на кода от контекстното меню.

2. В откриването Microsoft Visual Basic за приложения прозорец, копирайте под VBA кода в прозореца.

VBA код: изчистване на зависима клетка от падащ списък след избиране на променен

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 2018/06/04
    Application.EnableEvents = False
    If Target.Column = 5 And Target.Validation.Type = 3 Then
        Target.Offset(0, 1).Value = ""
    End If
    Application.EnableEvents = True
End Sub

Забележка: В кода номер 5 е номерът на колоната, който съдържа родителския падащ списък. В този случай моят родителски падащ списък се намира в колона E.

3. Натисни Друг + Q ключове за затваряне на Microsoft Visual Basic за приложения прозорец.

Отсега нататък, когато се правят промени в родителския падащ списък, съдържанието на втория падащ списък ще се изчиства автоматично. Вижте екранна снимка:


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

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

🤖 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 (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Deleting Multiple rows gives error. Any suggestions ?
This comment was minimized by the moderator on the site
I was getting errors with multiple row deletion as well as rows being deleted that shouldn't have been cleared. Below is the solution that worked for me.

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by D 2022/08/23
On Error Resume Next
Application.EnableEvents = False
If Target.Column = 9 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 4).Value = ""
End If
End If

Application.EnableEvents = False
If Target.Column = 9 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 5).Value = ""
End If
End If

Application.EnableEvents = False
If Target.Column = 13 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).Value = ""
End If
End If

exitHandler:
Application.EnableEvents = True
Exit Sub

End Sub
This comment was minimized by the moderator on the site
I am trying to have this apply to two dependent drop downs and cannot seem to get the code right. I tried copying the code and updating the offset and using the and function and get an error each time. Any advice? I want the two columns next to the drop down to clear if it is changed instead of just one.
This comment was minimized by the moderator on the site
Hi, this is how I got it working for multiple drop downs, the "And" function didn't work for me either but this seems to. Essentially you need a different "If" statement for each drop down you want to go blank when you change the chosen value in the first drop down menu. There may be a more efficient way to do this but this worked for me!


Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 2018/06/04
Application.EnableEvents = False
If Target.Column = 2 And Target.Validation.Type = 3 Then
Target.Offset(0, 1).Value = ""
End If
If Target.Column = 2 And Target.Validation.Type = 3 Then
Target.Offset(0, 2).Value = ""
End If
If Target.Column = 2 And Target.Validation.Type = 3 Then
Target.Offset(0, 3).Value = ""
End If
If Target.Column = 2 And Target.Validation.Type = 3 Then
Target.Offset(0, 4).Value = ""
End If
Application.EnableEvents = True
End Sub
This comment was minimized by the moderator on the site
It does not work.
This comment was minimized by the moderator on the site
Hi Marlborek,
Which Excel version are you using?
This comment was minimized by the moderator on the site
Working Perfectly
This comment was minimized by the moderator on the site
To post as a guest, your comment is unpublished.
This comment was minimized by the moderator on the site
سلام وقت شما بخیر
ما فایل اکسلی داریم که خروجیش از طریق نرم افزار همکاران سیستم هست یعنی فایل اکسل ما آنلاین به data base نرم افزار همکاران متصله(این مهم نیست برای اطلاع عرض کردم) توی این فایل فیلترهایی وجود داره که هر فیلتر یک لیست کشویی داره مشکل ما اینه که وقتی میخواهیم هر کدوم از فیلتر ها یکی از موارد لیست کشویی رو انتخاب کنیم با انتخاب لیست،لیست کشویی زود می پره یعنی بسته میشه زود و نمیشه چیزی رو انتخاب کرد،اینم بگم خدمتتون که آفیس رو حذف و نصب هم کردم بازم جواب نداد یعنی یه مدت خیلی کوتاهی جواب میده بعد به حالت قبل بر میگرده با پشتیبانی همکاران هم تماس گرفتیم گفتن مشکل از آفیستونه
(آفیسمون 2016 هست)یعنی عملا اونها هم نتونستن مشکل رو پیدا کنن.
لطفا اگه راهی هست ممنون میشم راهنماییم کنید.
با تشکر
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations