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

Як очистити вказаний вміст комірки, якщо значення іншої комірки змінюється в Excel?

Припустимо, що ви хочете очистити діапазон зазначеного вмісту комірки, якщо значення іншої комірки змінено, як ви можете це зробити? Ця публікація покаже вам спосіб вирішення цієї проблеми.

Очистити вказаний вміст комірки, якщо значення іншої комірки змінюється за допомогою коду VBA


Очистити вказаний вміст комірки, якщо значення іншої комірки змінюється за допомогою коду VBA

Як показано на знімку екрана нижче, при зміні значення в комірці A2 вміст у комірці C1: C3 буде автоматично очищено. Будь ласка, виконайте наступне.

1. На аркуші ви очистите вміст комірки на основі змін іншої комірки, клацніть правою кнопкою миші вкладку аркуша та виберіть Переглянути код з контекстного меню. Дивіться знімок екрана:

2. На відкритті Microsoft Visual Basic для додатків вікно, скопіюйте та вставте нижче коду VBA у вікно коду.

Код VBA: Очистити вказаний вміст комірки, якщо значення іншої комірки змінюється

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

примітки: У коді B2 - це комірка, на основі якої ви очистите вміст комірки, а C1: C3 - діапазон, з якого ви очистите вміст. Будь ласка, змініть їх, як вам потрібно.

3 Натисніть кнопку інший + Q клавіші, щоб закрити Microsoft Visual Basic для додатків вікна.

Тоді ви зможете побачити вміст у діапазоні C1: C3 очищається автоматично, коли значення в комірці A2 змінюється, як показано на знімку екрана нижче.


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (38)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Код для очищення осередку, якщо інша змінюється, чудово працює!!!! Але мені потрібно, щоб він працював навпаки..... Як написаний код??


Дякуємо за вашу допомогу
Цей коментар був мінімізований модератором на сайті
Шановний Скотт,
Що ви маєте на увазі працювати навпаки? Якщо вручну очищати вміст певних клітинок (C1:C3), то очищати вміст клітинки A2 автоматично?
Цей коментар був мінімізований модератором на сайті
привіт, це працює лише для фіксованої клітинки джерела (A2), як це зробити динамічно, наприклад, джерело є змінною коміркою? я спробував написати
A=активна клітинка.ряд
Якщо не перетинається (ціль, діапазон ("A"& A)) - це нічого
Діапазон("C1:C3").ClearContents
End If

це повинно виконувати роботу щодо активної клітинки (тобто виділення), але не працює
Дякую
Цей коментар був мінімізований модератором на сайті
Хороший день,
Будь ласка, спробуйте наведений нижче код VBA. Дякуємо за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо (не перетинається(ціль, рядки(1)) нічого) і (ціль.кількість = 1), то
Діапазон("C1:C3").ClearContents
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт! Я шукаю спосіб очистити діапазон клітинок від даних, коли в певну клітинку вводиться "x". Я використав наведену вище формулу, і вона ідеально працювала для цього одного рядка. Проблема в тому, що мені потрібно розширити його до багатьох рядків. Наприклад, якщо в "D13" введено "x", мені потрібно очистити діапазон J:13 - v:13. Мені також потрібно, щоб це сталося, якщо в "D14" введено x, як у "Мені потрібно очистити діапазон d:14 - v:14". Чи є спосіб це написати? Спасибі за вашу допомогу!
Цей коментар був мінімізований модератором на сайті
Привіт, у мене це не працює. Нічого не змінюється, але також немає помилок. Будь-які поради?
Цей коментар був мінімізований модератором на сайті
Добрий день,
Вибачте за незручності. Ви б надали свою версію Office? Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Як у випадку A2 посилатися на клітинку з іншого аркуша?
Цей коментар був мінімізований модератором на сайті
будь-який спосіб зробити це без VBA?
Цей коментар був мінімізований модератором на сайті
Привіт Соня,
Не знайшов жодного рішення, крім VBA. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Який код VBA я можу використовувати, якщо у мене є таблиця і потрібно кілька пробілів?

Моя таблиця B3:E7. Якщо вміст стовпця B очищено, я хотів би очистити дані в стовпцях C, D, E для цього рядка. У мене є наведене нижче для рядка 3, але я хотів би те ж саме в рядках 4,5,6 і 7.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо не перетинається(ціль, діапазон("B3")) - це нічого
Діапазон("C3:E3").ClearContents
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Як щодо того, щоб просто очистити вміст будь-якої клітинки подвійним клацанням?
Цей коментар був мінімізований модератором на сайті
Привіт, як повторити код для більш ніж однієї клітинки в прикладі, тобто якщо я видалю вміст комірок a4 і a5, я хочу очистити вміст b4:z4 і b5:z5 відповідно, мені потрібно це зробити для великої електронної таблиці з 1000 рядків будь-яка порада буде дуже вдячна
Цей коментар був мінімізований модератором на сайті
Привіт, Джуліан, я також шукаю те саме, будь ласка, дайте мені знати, якщо у вас є рішення для цього.
Цей коментар був мінімізований модератором на сайті
Будь ласка, змініть цифри відповідно
Dim i як ціле число
Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Для i = 2 до 10
lookrange = "A" & i
contentrange = "B" & i & ":" & "C" & i
Якщо не перетинається (ціль, діапазон (диапазон)) - це нічого
Діапазон(діапазон вмісту).ClearContents
End If
Далі я
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт, sagarsrinivas0312, велике спасибі за цей код. Я вже тиждень шукаю це рішення!
Цей коментар був мінімізований модератором на сайті
Це чудово, дякую. Як я можу це зробити кілька разів... щоб очистити інші клітинки на основі іншого стовпця?
Цей коментар був мінімізований модератором на сайті
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla?
non riesco veramente a farlo funzionare

grazie mille
Цей коментар був мінімізований модератором на сайті
привіт,
Я намагаюся очистити додаткові клітинки стовпців A і B, якщо знайшов порожні клітинки в стовпці C аркуша з назвою «Продано», а макрос запускається з аркуша з назвою «Рахунок-фактура».

Я отримав код нижче з сайту допомоги, але не можу отримати бажане.
будь ласка, допоможіть мені з цього приводу. Скріншот прикріпив те, що я хочу.

Сума Clear()

Dim g As Long
Для g = 2 До ActiveSheet.UsedRange.Rows.Count
Якщо клітинки(g, "C").Значення = "" Тоді
Клітинки(g, "A").ClearContents
Клітинки(g, "B").ClearContents

End If
Далі
Кінцева сума
Цей коментар був мінімізований модератором на сайті
Здається, це не працює, якщо вказаний вміст комірки контролюється коміркою на іншому аркуші? чи є виправлення для цього?
Приклад використання імен ваших осередків
Якщо клітинка "A2" має значення (=sheet1[@[a5]] і це число змінюється на аркуші 1, тоді змінюється вміст A2, він не очищає вміст у зазначеному діапазоні.
Цей коментар був мінімізований модератором на сайті
Приватний додатковий аркуш_Activate()
Якщо Діапазон("S2") <> Діапазон("A2").Значення Тоді
Діапазон("S2") = Діапазон("A2").Значення
Діапазон("d2:g2").ClearContents
End If
«S2» можна замінити будь-якою клітинкою за межами діапазону даних. VBA автоматично оновлює дані для 'S2', після чого дані, що оновлюються, контролюють вказаний діапазон і чи очищаються вони.
Це єдиний спосіб, який я знайшов, щоб успішно зробити це, використовуючи клітинки, на які посилаються, як у аркуші, так і за його межами.
Цей коментар був мінімізований модератором на сайті
Не зовсім те, що мені потрібно, але отримати туди. У мене є порожня клітинка E3. У мене є дані в B3. Коли я вставляю дані в E3, якщо вони збігаються з B3, то B3 буде видалено. Сподіваюся, ви можете мені допомогти.
Цей коментар був мінімізований модератором на сайті
Чи можна очистити вказаний вміст клітинки, якщо клітинка-тригер містить певне число? Скажімо, ЯКЩО клітинка A1 = 1, то очистити клітинки A2:A4?
Цей коментар був мінімізований модератором на сайті
Привіт всім,

Besoin d'aide, j'ai besoin d'effacer le contenu d'une cellule de la colonne "I" si la cellule (de la même ligne) de la colonne "O" =0, sur 2000 lignes avec des titres tout le 10 lignes environ.
Цей коментар був мінімізований модератором на сайті
Здравствуйте,

Просто шукаю простий спосіб зробити так, щоб якщо «B2» вибрав «Так» зі списку перевірки даних, клітинка B3 очистила свої дані... і навпаки: якщо «B3» вибрала «Так» зі списку список перевірки даних, клітинка "B2" очистить дані.

В основному B2 or B3 можна сказати "Так"(зі списку перевірки даних), але ніколи одночасно, один має очистити інший.
Цей коментар був мінімізований модератором на сайті
Привіт Джефф,
Наступний код VBA може зробити вам послугу. Будь ласка, спробуйте.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
Цей коментар був мінімізований модератором на сайті
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e colonne) in base al valore di un'altra cella. це: ячейка A2 є нижньою з 12, квадрат з вершинами навпроти C2 : F4 є скасованим.
Дуже дякую
Цей коментар був мінімізований модератором на сайті
Привіт П'єтро,
Вибачте, я не зовсім розумію ваше запитання. Ви не проти завантажити знімок екрана своїх даних?
Цей коментар був мінімізований модератором на сайті
Помогите з рішенням, VBA не знаю. Мені потрібно при зміні ячейки видалити дані з іншої і щоб це діяло на весь стіл.
Меню А2 видаляється з G2, зміну А3 видаляє з G3, зміну A6 видаляє з G6 і т.д.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо не перетинається (ціль, діапазон ("A2")) - це нічого
Діапазон ("G2").ClearContents
End If
End Sub


Данный код хороший для одной ячейки, а як його розмножити на всі ячейки столбца?
Цей коментар був мінімізований модератором на сайті
Привіт Наталья,
Наведений нижче код VBA може допомогти вам вирішити проблему. Будь ласка, спробуйте.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт

Zu Punkt 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg, Alt, Tab... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht.

Lieben Gruß Mathias
Цей коментар був мінімізований модератором на сайті
Привіт Матіас!
Якщо ви не можете знайти відповідну клавішу на клавіатурі. Ви можете просто натиснути зберегти кнопка в Вікно програм Microsoft Visual Basic щоб зберегти код, а потім вручну закрити це вікно.
Цей коментар був мінімізований модератором на сайті
Здравствуйте,
Наведений нижче код працює, як рекламується, але виникають такі проблеми:

По-перше, під час зміни розміру цільової таблиці всі дані таблиці очищаються І всі заголовки стовпця, окрім 1, переміщуються на «Стовпець1, Стовпець2 тощо». І книга автоматично зберігає свій левий і скасовує скасування.

По-друге, під час видалення будь-якого рядка таблиці я отримую «Помилка виконання 1004 (метод Offset of object Range failed.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


Будь -яке уявлення про те, що може бути не так?

Заранее спасибо!
Цей коментар був мінімізований модератором на сайті
Holo, estoy trabajando una base de datos en OFFICE ONLINE a traves de ONEDRIVE, queero que al PONER "CANCELADO" or "NOSHOW" elimine el contenido de la fila seleccionada.
Цей коментар був мінімізований модератором на сайті
Привіт Ангеле,
Код VBA не працює в Office Online. Вибачте за незручності.
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL