Просмотр и скрытие столбцов в Excel с помощью vba

У меня есть рабочий лист со значениями в столбцах B: G. На том же листе в ячейке A1 я создал раскрывающийся список, используя проверку данных со значениями, такими как A, B и C.

Мне нужно, когда я выбираю значение ячейки A, а затем столбцы B: C должны быть видимыми, а другие столбцы должны быть скрыты от D: G. Таким же образом, если я выберу B из списка, мне нужно просмотреть столбцы D: E и B: C и F: G, которые должны быть скрыты.

Не могли бы вы помочь мне в этом.

Примечание. Я плохо разбираюсь в VBA.


Попробуйте следующее:

  1. Откройте редактор VBA ( ALT + F11 ).
  2. Дважды щелкните Sheet1
  3. Выберите Рабочий лист в верхнем левом раскрывающемся списке и Изменить в верхнем правом раскрывающемся списке
  4. Вставьте этот код

NB — это предполагает, что проверка данных находится в ячейке A1

  Private Sub Worksheet_Change (ByVal Target As Range)  Уменьшить все столбцы как диапазон Установить allColumns = Columns ("B: G") allColumns.Hidden = True, если не пересекаются (Target, Range ("A1")) Ничего, то если Target.Value = "A", то столбцы ("B:  C "). Hidden = False ElseIf Target.Value =" B "Then Columns (" D: E "). Hidden = False ElseIf Target.Value =" C "Then//Добавьте сюда дополнительную логику End If End IfEnd Sub код> 

3

Перейти к просмотру -> макросы.
Нажмите раскрывающийся список и сделайте «запись нового макроса». Щелкните правой кнопкой мыши заголовок столбца и выполните скрыть столбец.
Затем отобразить столбец. Выполнить макросы-> остановить запись. Макросы -> Просмотреть макросы Нажмите кнопку редактирования.

вы получите следующий код:

  Столбцы ("C: C"). SelectSelection.EntireColumn.Hidden = TrueSelection.EntireColumn.Hidden = False  

Теперь вы знаете, как скрыть и показать столбцы. Сначала вы выбираете столбец, затем устанавливаете Hidden = true или false.

Google: макрос Excel при изменении значения ячейки

Щелкните первую ссылку: http://support .microsoft.com/kb/213612

Возьмите код из этой ссылки и прочтите комментарии:

  Private Sub Worksheet_Change (ByVal Target As Range  ) Dim KeyCells As Range 'Переменная KeyCells содержит ячейки, которые будут вызывать предупреждение при их изменении.  Установите KeyCells = Range ("A1: C10") If Not Application.Intersect (KeyCells, Range (Target.Address)) _ Is Nothing Then "Отображать сообщение, когда одна из назначенных ячеек была изменена".  'Разместите здесь свой код.  MsgBox «Ячейка» & Target.Address & «изменилась».  End IfEnd Sub  

Убедитесь, что вы внимательно прочитали ссылку. И следуйте инструкциям. Иногда я тороплюсь и упускаю важные детали.

Дайте мне знать, достаточно ли этого или вам нужна дополнительная помощь.

Улучшите этот ответ
ответил 24 мая ’14 в 11:44
  • Дерек, Спасибо за ответ. Скоро подтвердим статус — user3671568, 24 мая 2014, 17:59
добавить комментарий |

Перейти к просмотру -> макросы.
Нажмите раскрывающийся список и сделайте «запись нового макроса». Щелкните правой кнопкой мыши заголовок столбца и скрыть столбец.
Затем отобразите столбец. Сделайте макросы-> остановите запись. Макросы -> Просмотреть макросы Нажмите кнопку редактирования.

вы получите следующий код:

  Столбцы ("C: C"). SelectSelection.EntireColumn.Hidden = TrueSelection.EntireColumn.Hidden = False  

Теперь вы знаете, как чтобы скрыть и показать столбцы. Сначала вы выбираете столбец, затем устанавливаете Hidden = true или false.

Google: макрос Excel при изменении значения ячейки

Щелкните первую ссылку: http://support .microsoft.com/kb/213612

Возьмите код из этой ссылки и прочтите комментарии:

  Private Sub Worksheet_Change (ByVal Target As Range  ) Dim KeyCells As Range 'Переменная KeyCells содержит ячейки, которые будут вызывать предупреждение при их изменении.  Установите KeyCells = Range ("A1: C10") If Not Application.Intersect (KeyCells, Range (Target.Address)) _ Is Nothing Then "Отображать сообщение, когда одна из назначенных ячеек была изменена".  'Разместите здесь свой код.  MsgBox «Ячейка» & Target.Address & «изменилась».  End IfEnd Sub  

Убедитесь, что вы внимательно прочитали ссылку. И следуйте инструкциям. Иногда я тороплюсь и упускаю важные детали.

Дайте мне знать, достаточно ли этого или вам нужна дополнительная помощь.



Скрыть столбцы с помощью VBA в Excel

Скрыть один или несколько столбцов на листе

Скрыть столбец очень просто. Код ниже скрывает столбец C на активном листе. Если установить для свойства Hidden значение False , столбец снова станет видимым.

  Columns ("D  ") .Hidden = True  

Код ниже скрывает несколько столбцов (D. E и F).

  Columns (" D  : F "). Hidden = True  

Скрытие столбцов в диапазоне

При запуске с диапазона, который не является полным столбцом, вы получите ошибку времени выполнения« 1004 »: невозможно установить свойство Hidden класса Range.

   Dim rng As Range: Set rng = Application.Range ("B2") rng.Hidden = True  

Вы можете исправить это, применив весь столбец к диапазону:

  Dim rng As Range: Установить rng = Application.Range ("B2") rng.EntireColumn. Hidden = True  

Сделать столбец xlVeryHidden

xlVeryHidden не поддерживается для столбцов. Обходной путь — скрыть его, а затем защитить лист.

Оцените статью
logicle.ru
Добавить комментарий