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

Як приховати або показати стовпці на основі вибору спадного списку в Excel?

Використовуючи Excel, ви можете приховати або показати певні стовпці на основі вибору спадного списку. Наприклад, якщо у випадаючому списку вибрати Ні, стовпець C до I буде прихований, але якщо ви виберете Так, приховані стовпці C до I будуть приховані. Див. Знімок екрана, показаний нижче.
У цій статті ми покажемо вам метод VBA, щоб приховати або показати стовпці на основі вибору спадного списку в Excel.

Приховати або показати стовпці на основі вибору спадного списку в Excel


Приховати або показати стовпці на основі вибору спадного списку в Excel

Як згадано вище, щоб приховати або показати стовпці C до I на основі вибору в розкривному списку, виконайте наступні дії.

1. Спочатку створіть свій випадаючий список із так і ні, які вам потрібні.

2. Потім натисніть інший + F11 відкрити Microsoft Visual Basic для програми вікна.

3. Двічі клацніть ім'я поточного відкритого аркуша в полі VBAProject розділ, щоб відкрити редактор коду.

4. Потім скопіюйте та вставте нижче код VBA в редактор коду.

Код VBA: приховати або показати стовпці на основі вибору спадного списку

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20180822
    If Target.Column = 2 And Target.Row = 3 Then
        If Target.Value = "No" Then
            Application.Columns("C:I").Select
            Application.Selection.EntireColumn.Hidden = True
        ElseIf Target.Value = "Yes" Then
            Application.Columns("C:I").Select
            Application.Selection.EntireColumn.Hidden = False
        End If
    End If
End Sub

примітки: У наведеному вище коді стовпець = 2 і рядок = 3 є посиланням на клітинку випадаючого списку, а діапазон C: I - це стовпці, які ви хочете приховати або показати. Будь ласка, змініть їх відповідно до своїх потреб.

5. прес інший + Q одночасно для виходу з Microsoft Visual Basic для програми вікна.

Відтепер, коли ви вибираєте Ні у випадаючому списку, усі вказані стовпці приховуються.

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


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


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

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

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

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

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



Приватний допоміжний робочий лист_Change(ByVal Target As Range)


Якщо Target.Column = 3 І Target.Row = 2 І Target.Value = "Ні"

Потім


Application.Rows("3:90").Вибрати


Application.Selection.EntireRow.Hidden = True


Ще


Application.Rows("3:90").Вибрати


Application.Selection.EntireRow.Hidden = False


End If


End Sub




Але проблема, з якою я стикаюся, полягає в тому, що я не можу відповісти на так, ні: оскільки всі рядки з 3 по 90 вибираються, що не дозволяє мені відповідати на наступні запитання
Цей коментар був мінімізований модератором на сайті
Шановний Харікумар,

Код, який ви надали, добре працює для мене. Якщо вибрати «Ні» зі спадного списку (який знаходиться в комірці C2), рядок 3:90 буде негайно приховано. Вибір Так зі спадного списку відкриє їх усі одночасно. Вибачте, я не розумію сенсу того, що ви сказали, про що ви не можете відповісти так, ні.
Цей коментар був мінімізований модератором на сайті
Дякую за корисну статтю.


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

Я маю на увазі щось на кшталт цього:
якщо refcell = "a", то приховати всі стовпці з "a" в рядку 7, інакше
якщо refcell = "b", то приховати всі стовпці з "b" у рядку 7, інакше
якщо refcell = "c", то приховати всі стовпці з "c" у рядку 7 else
показати всі стовпці

Якщо це можливо, як виглядав би код VBA?
Цей коментар був мінімізований модератором на сайті
гей! Ви знайшли рішення для цього? Шукаю те саме :D
Цей коментар був мінімізований модератором на сайті
Дорогий Джон
Наведений нижче код VBA може допомогти вам вирішити проблему. При введенні "a" в клітинку A1 всі стовпці з "a" в рядку 7 будуть автоматично приховані. Він також працює при введенні b і c в клітинку A1.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
Dim xRgFind As Range
Dim xRgUni As Range
Dim xFirstAddress як рядок
On Error Resume Next
Application.ScreenUpdating = Невірний
Рядки(7).Увесь стовпець.Прихований = хибно
Якщо Target.Address = Range("A1").Address Then
Встановіть xRg = Intersect(ActiveSheet.UsedRange, Rows(7))
Встановіть xRgFind = xRg.Find(Target.Value, , xlValues, xlWhole, , , True)
Якщо ні, то xRgFind – це нічого
xFirstAddress = xRgFind.Address
Do
Встановити xRgFind = xRg.FindNext(xRgFind)
Якщо xRgUni - це нічого, то
Встановіть xRgUni = xRgFind
Ще
Встановити xRgUni = Application.Union(xRgUni, xRgFind)
End If
Цикл While (Not xRgFind Is Nothing) і (xRgFind.Address <> xFirstAddress)
End If
xRgUni.EntireColumn.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Шановний Райан,
Будь ласка, спробуйте наступний код VBA. При введенні "a" в клітинку A1 всі стовпці з "a" в рядку 7 будуть автоматично приховані. Він також працює при введенні b і c в клітинку A1.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
Dim xRgFind As Range
Dim xRgUni As Range
Dim xFirstAddress як рядок
On Error Resume Next
Application.ScreenUpdating = Невірний
Рядки(7).Увесь стовпець.Прихований = хибно
Якщо Target.Address = Range("A1").Address Then
Встановіть xRg = Intersect(ActiveSheet.UsedRange, Rows(7))
Встановіть xRgFind = xRg.Find(Target.Value, , xlValues, xlWhole, , , True)
Якщо ні, то xRgFind – це нічого
xFirstAddress = xRgFind.Address
Do
Встановити xRgFind = xRg.FindNext(xRgFind)
Якщо xRgUni - це нічого, то
Встановіть xRgUni = xRgFind
Ще
Встановити xRgUni = Application.Union(xRgUni, xRgFind)
End If
Цикл While (Not xRgFind Is Nothing) і (xRgFind.Address <> xFirstAddress)
End If
xRgUni.EntireColumn.Hidden = True
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт Кристал,
Я новачок у цьому. Я не можу зрозуміти з вашого коду, як ви визначаєте a, b і c як значення в клітинці A1. Я в основному, що робити, що робить ваш код, але мені потрібно, щоб значення A1 (або будь-якої іншої клітинки, яку я хочу використовувати), було рядком.
приклад:
У мене є таблиця (діапазон комірок), яка містить 1 із 3 значень у рядку 3. Значення ("Активний", "Неактивний" і "Закритий". Я хочу, щоб усі стовпці мають "Неактивний" або "Закритий" " в рядку 3, щоб бути прихованим. Значення в рядку 3 отримано з функції INDEX/MATCH, яка витягує з іншого аркуша моєї книги. На іншому аркуші я вибираю 1 з 3 значень зі спадного списку.

Як я можу змінити цей код, щоб у рядку 3 шукати "Неактивний" або "Закритий" і приховати лише ці стовпці?


Заздалегідь дякую!

Едді
Цей коментар був мінімізований модератором на сайті
Шановний Едді,
На жаль, я не можу допомогти з цим. Ви можете опублікувати своє запитання на нашому форумі: https://www.extendoffice.com/forum.html щоб отримати додаткову підтримку від нашого професіонала Excel.
Цей коментар був мінімізований модератором на сайті
Мені потрібно використовувати це для приховування 14 стовпців по черзі на основі значення комірки.
наприклад - Якщо A1 = CAT, то приховати стовпці від J до V

Якщо A1 = BAT, то приховати стовпці I та K до V

Якщо A1 = HAT, то приховати стовпці I, J і L до P

В основному, мої дані містяться в стовпцях від I до V, і мені потрібно приховати стовпці з цього діапазону, за винятком вибраного в опорній клітинці. і відобразити все, якщо в клітинці посилання вибрано «Усі».

Я спробував використати ту саму формулу вище в циклі, але я отримую "помилку компіляції - " Чи потрібно використовувати іншу формулу?
Цей коментар був мінімізований модератором на сайті
Шановний Ручі,
На жаль, я не дуже розумію вашу думку про те, що «Загалом мої дані містяться в стовпцях I–V, і мені потрібно приховати стовпці з цього діапазону, за винятком вибраного в клітинці посилання. і відобразити все, якщо в клітинці посилання вибрано «Усі».»
Цей коментар був мінімізований модератором на сайті
Хтось може допомогти:


Якщо я введу значення в клітинку A1 як "Ні", я хочу, щоб стовпці D:E приховувалися. і якщо я введу значення як "Так", я хочу, щоб стовпці D:E показали, а стовпці F:G приховали
Цей коментар був мінімізований модератором на сайті
Шановний Аніш,
Цей код VBA може допомогти вам. Будь ласка, спробуйте. Дякуємо за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRg As Range
Встановити xRg = діапазон ("A1")
Якщо xRg.Address = Target.Address і Target.Value = "Ні", Тоді
Columns("D:E").EntireColumn.Hidden = True
ElseIf xRg.Address = Target.Address і Target.Value = "Так", Тоді
Columns("D:E").EntireColumn.Hidden = False
Columns("F:G").EntireColumn.Hidden = True
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Мені потрібна допомога з макросом або формулою Excel. Хтось може допомогти?
Цей коментар був мінімізований модератором на сайті
Мені потрібна допомога з подібним макросом, але для вказаних діапазонів комірок, а не для цілого стовпця. Чи можна це зробити?
Цей коментар був мінімізований модератором на сайті
Шановна Кара,
Ви маєте на увазі "приховати вміст вказаних діапазонів комірок на основі значення клітинки"? Будь ласка, опублікуйте своє запитання з деталями, щоб допомогти нам вирішити проблему.
Цей коментар був мінімізований модератором на сайті
Привіт! У мене є вибір із 10 елементів, і я намагаюся показати лише рядки з 57 по 72, коли вибираю один з них. Я використовую наступний код, але чомусь він не працює, і моя інформаційна панель взагалі не змінюється. Однак, коли я вводжу щось у випадкову клітинку, сторінка перезавантажується, і рядки 57:72 стають прихованими. Але потім він залишається незмінним у всіх моїх виборах, і я не можу знову показати його за допомогою вибору списку. Чи можу я знати, чи є у когось альтернативна пропозиція? Заздалегідь спасибі!


Приватний допоміжний робочий лист_Change(ByVal Target As Range)

Якщо Target.Column = 2 і Target.Row = 3 і Target.Value = "1"

Потім Application.Rows("57:72"). Виберіть Application.Selection.EntireRow.Hidden = False

Інше Application.Rows("57:72").Select Application.Selection.EntireRow.Hidden = True

End If

End Sub
Цей коментар був мінімізований модератором на сайті
привіт,
Дякую за код, якщо я хочу додати третій варіант, який синтаксис?
Цей коментар був мінімізований модератором на сайті
Я змінив цей код, щоб приховати рядки замість стовпців, і він працює, але з однією незначною проблемою. У мене є кілька списків перевірки даних на одному робочому аркуші, і коли я вибираю значення з цих інших списків, усі рядки, зазначені в моєму коді, здається, автоматично відображаються, навіть якщо для цільової клітинки встановлено значення «Ні». Чому це відбувається і як я можу це виправити?
Цей коментар був мінімізований модератором на сайті
Шановна Дженіс,
Вибачте за помилку, будь ласка, спробуйте новий код нижче. Дякую за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо Target.Column = 2 і Target.Row = 3, то
Якщо Target.Value = "Ні", Тоді
Application.Columns("C:I").Вибрати
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = "Так" Тоді
Application.Columns("C:I").Вибрати
Application.Selection.EntireColumn.Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Це саме те, що мені потрібно зробити, але я не хочу, щоб стовпець був виділений, коли я ховаю/показую. Як я можу вбудувати в код, щоб перейти до наступної клітинки?
Цей коментар був мінімізований модератором на сайті
Дякую за корисну статтю. Я хотів би зробити цей макрос ще далі: мені потрібно саме це, але стовпці, які мені потрібно приховати/показати, не обов’язково знаходяться в безперервному діапазоні. Мої стовпці варіюються від C до NC. Я хочу, щоб, якщо я вибираю Цільове значення 1, воно приховує AH до NC, і відображає C до AG, а коли я вибираю Цільове значення 2, воно приховує C до AG, а також BJ до NC, і показує AH до BI і так. відповідно до цільового значення.
Цей коментар був мінімізований модератором на сайті
В основному мені потрібно знати, як звертатися до кількох діапазонів одночасно. Я пробував, але видає помилку. Ось подивіться
Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо Target.Column = 2 і Target.Row = 4, то
Якщо Target.Value = "січень", Тоді
Application.Columns("AH:NC").Виберіть
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = " Січень " Тоді
Application.Columns("C:AG").Виберіть
Application.Selection.EntireColumn.Hidden = False

ElseIf Target.Value = "лютий" Тоді
Application.Columns("C:AG, BJ:NC").Виберіть
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = " Лютий " Тоді
Application.Columns("AH:BI").Виберіть
Application.Selection.EntireColumn.Hidden = False

End If
End If
End Sub

Примітка: це працює для Target.Value = " січень ", але для Target.Value = "лютий" виділяє помилку в цьому рядку => Application.Columns("C:AG, BJ:NC"). Виберіть

Крім того, як тільки він ховається під час вибору цільового значення, він не показується при виборі іншого цільового значення
Цей коментар був мінімізований модератором на сайті
Привіт Марія,
Ваш код оптимізовано. Будь ласка, спробуйте. Сподіваюся, що зможу допомогти.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Dim xHRow як ціле число
Встановіть xRG = Діапазон ("B4")
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "січень", Тоді
Application.Columns("AH:NC").Hidden = True
Application.Columns("C:AG").Hidden = False
ElseIf Target.Value = "лютий" Тоді
Application.Columns("C:AG").Hidden = True
Application.Columns("BJ:NC").Hidden = True
Application.Columns("AH:BI").Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Моє спадне меню знаходиться в клітинці B23. Якщо так, покажіть, а якщо ні, то приховайте рядок 29. Ось код, який я використовую:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
'Оновлено Extendoffice 20180822
Якщо Target.Column = 2 і Target.Row = 23, то
Якщо Target.Value = "ні", Тоді
Application.Row(29).Select
Application.Selection.EntireRow.Hidden = True
ElseIf Target.Value = "yes" Тоді
Application.Row(29).Select
Application.Selection.EntireRow.Hidden = False
End If
End If
End Sub

Але в кінцевому підсумку я отримав помилку під час виконання 438 - Об'єкт не підтримує цю властивість або метод. Чому? Чи щось не так у коді вище?

Заздалегідь дякую за допомогу.
Цей коментар був мінімізований модератором на сайті
Привіт, Ґінтер!
Наведений нижче код VBA може допомогти вам вирішити проблему. Будь ласка, спробуйте. Дякуємо за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Dim xHRow як ціле число
Встановіть xRG = Діапазон ("B23")
xHRow = 29
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "Ні", Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = True
ElseIf Target.Value = "Так" Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт Кристал,


Я сподіваюся, що ви можете допомогти мені приховати/показати кілька рядків. Я хотів би показати рядки 63-73, коли в клітинці D51 вибрано ТАК. Я використовую наступне -


Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Dim xHRow як ціле число
Встановіть xRG = Діапазон ("D51")
xHRow = ("63:73")
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "Ні", Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = True
ElseIf Target.Value = "Так" Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = False
End If
End If
End Sub



Дякую!
Цей коментар був мінімізований модератором на сайті
Привіт, Габ,
Будь ласка, застосуйте наведений нижче код VBA. Дякуємо за коментар.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Dim xHRow як рядок
Встановіть xRG = Діапазон ("D51")
xHRow = "63:73"
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "Ні", Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = True
ElseIf Target.Value = "Так" Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Код, наданий для приховування/відображення стовпців на основі значення, вибраного зі спадного списку іншого стовпця, чудово працює. Спасибі. Але це працює лише для одного рядка.
Як застосувати це до решти вибраної кількості рядків у електронній таблиці. Я розумію, що нам, можливо, доведеться визначити змінну для номера рядка та збільшувати це в циклі. Але я не знаю його синтаксису. Чи може хтось допомогти з цим, будь ласка?
Цей коментар був мінімізований модератором на сайті
привіт,
Будь ласка, спробуйте наведений нижче код VBA. Сподіваюся, це може допомогти.
Будь ласка, змініть діапазон відповідно до потреб.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Встановіть xRG = Діапазон ("B3:B30")
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "Ні", Тоді
Application.Columns("C:I").Вибрати
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = "Так" Тоді
Application.Columns("C:I").Вибрати
Application.Selection.EntireColumn.Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Дякую. Я використовував код, і він чудово працює, але коли я вводжу в клітинку нижче та натискаю enter, він автоматично переміщує курсор назад до цільового поля. Чи є спосіб обійти це?
Цей коментар був мінімізований модератором на сайті
Привіт, Грант!
Я спробував, як ви згадували, але не знайшов тієї ж проблеми. Чи можете ви сказати мені свою версію Excel? Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Кожен стовпець – це інший учень (2 у цьому прикладі A та B). У мене є два спадних меню (на A1 і B1). У кожному з них є варіанти «Пройдено», «Не вдалося» та «Вибрати один». Тепер мені вдалося змусити його працювати, вибравши лише одне спадне меню (або A1, або B1). Я хочу мати можливість відображати поля, які були приховані A1, щоразу, коли я вибираю щось на B1. Мета полягає в тому, щоб вибрати варіант на A1 і заповнити рядки, які залишилися. Потім виберіть B1 і заповніть рядки, які залишилися (незалежно від вибору A1.

Дякую!

Приватний допоміжний робочий лист_Change(ByVal Target As Range)

Якщо Intersect(Target, Range("A1:B2")) є Nothing або Target.Cells.Count > 1, то
Exit Sub

ElseIf Range("A1").Значення = "Виберіть один" Потім
Рядки("2:15").Увесь рядок.Прихований = хибно

ElseIf Range("A1").Value = "Передано" Тоді
Rows("7").EntireRow.Hidden = False
Rows("8:15").EntireRow.Hidden = True

ElseIf Range("A1").Значення = "Не вдалося" Тоді
Rows("7").EntireRow.Hidden = True
Рядки("8:15").Увесь рядок.Прихований = хибно

Діапазон ElseIf("B1").Value = "Виберіть один" Потім
Рядки("2:15").Увесь рядок.Прихований = хибно

ElseIf Range("B1").Value = "Передано" Тоді
Rows("7").EntireRow.Hidden = False
Rows("8:15").EntireRow.Hidden = True

ElseIf Range("B1").Значення = "Не вдалося" Тоді
Rows("7").EntireRow.Hidden = True
Рядки("8:15").Увесь рядок.Прихований = хибно

End If

End Sub
Цей коментар був мінімізований модератором на сайті
Хороший день,
Вибачте, не можу вам з цим допомогти. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Я отримую помилку на xHRow = (14:24")

Я намагаюся приховати або показати кілька рядків залежно від вибору C4. Чи можете ви допомогти з тим, що я не так?

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim xRG As Range
Dim xHRow As Range
Встановіть xRG = Діапазон ("C4")
xHRow = ("14:24")
Якщо Not Intersect(Target, xRG) - це нічого, то
Якщо Target.Value = "Pulled", Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = True
ElseIf Target.Value = "Замінено" Тоді
Application.Rows(xHRow).Select
Application.Selection.EntireRow.Hidden = False
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Помилка: Помилка під час виконання "91":
Об’єктна змінна або змінна блоку не встановлена
Цей коментар був мінімізований модератором на сайті
Мені потрібна допомога. Чому, коли я вже скопіював цю формулу до свого VBA і спробував відтворити її, вся таблиця прихована, а не лише частковий стовпець, який я хочу приховати?
Дуже дякую за допомогу.
Цей коментар був мінімізований модератором на сайті
Привіт, Реза Г.
У моєму випадку код працює добре. Ви не проти прикріпити знімок екрана діапазону таблиці та код VBA після зміни? Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Bonjour, j'ai le même problème...

Змінити код VBA:

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Якщо Target.Column = 3 і Target.Row = 3 і Target.Value = "Gestion", то
Application.Columns("D:E").Вибрати
Application.Selection.EntireColumn.Hidden = True

Ще

Якщо Target.Value = "Affaire nouvelle" Тоді
Application.Columns("D:E").Вибрати
Application.Selection.EntireColumn.Hidden = False

Ще

Якщо Target.Value = "Avenant", Тоді
Application.Columns("D:E").Вибрати
Application.Selection.EntireColumn.Hidden = False
End If
End If
End If
End Sub
Цей коментар був мінімізований модератором на сайті
Я використовував код, щоб чудово працював. Дякую. Але коли я вибрав зі спадного списку, він активний до останнього коду або переміститься до даних останнього стовпця. Як вибирати спадне меню щоразу (Стовпець = 13 І Target.Row = 3 тоді) не переміщуватись і можна записувати дані в наступний стовпець?
Дякую.
Приклад: приватна підкладка Worksheet_Change(ByVal Target As Range)
'Оновлено Extendoffice 20180822
' Якщо Target.Column = 13 і Target.Row = 3, то
Якщо Target.Column = 13 Тоді
Якщо Target.Value = "1: Так", Тоді
Application.Columns("N:O").Вибрати
Application.Selection.EntireColumn.Hidden = False
Application.Columns("P:S").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("V:Z").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("X:Z").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("AB:AK").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("AL").Вибрати
Application.Selection.EntireColumn.Hidden = False
Application.Columns("AM").Вибрати
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = "2: Ні" Тоді
Application.Columns("N").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("O:Z").Вибрати
Application.Selection.EntireColumn.Hidden = False
Application.Columns("AB:AK").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("AL").Вибрати
Application.Selection.EntireColumn.Hidden = True
Application.Columns("AM").Вибрати
Application.Selection.EntireColumn.Hidden = False
ElseIf Target.Value = "" Тоді
Application.Columns("N:AN").Вибрати
Application.Selection.EntireColumn.Hidden = False
End If
End If
'Якщо Target.Column = 16 і Target.Row = 3, то
Якщо Target.Column = 16 Тоді
Якщо Target.Value = "Cat", Тоді
Application.Columns("V:W").Вибрати
Application.Selection.EntireColumn.Hidden = True
ElseIf Target.Value = "Собака" Тоді
Application.Columns("V:W").Вибрати
Application.Selection.EntireColumn.Hidden = False
End If
End If
End Sub
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця