Скрыть столбцы на основе Combobox (Form) в Excel

У меня есть все настройки с различными вариантами прогнозов. Я делал это в прошлом на другой работе, и я не могу понять, где я ошибаюсь.

Private Sub ComboBox1_Change() If ComboBox1.Value = "2 Weeks" Then Columns("J:L").Select Selection.EntireColumn.Hidden = False Columns("M:R").Select Selection.EntireColumn.Hidden = True End If If ComboBox1.Value = "6 Weeks" Then Columns("M:O").Select Selection.EntireColumn.Hidden = False Columns("J:L").Select Selection.EntireColumn.Hidden = True Columns("P:R").Select Selection.EntireColumn.Hidden = True End If If ComboBox1.Value = "12 Weeks" Then Columns("P:R").Select Selection.EntireColumn.Hidden = False Columns("J:O").Select Selection.EntireColumn.Hidden = True End If End Sub 

Кажется, ваш код должен работать нормально. Я переписал его, чтобы быть более кратким, и он отлично работал (с Active-X-контролем).

 Private Sub ComboBox1_Change() Select Case ComboBox1.Value Case "2 Weeks" Columns("J:L").Hidden = False Columns("M:R").Hidden = True Case "6 Weeks" Columns("J:L").Hidden = True Columns("M:O").Hidden = False Columns("P:R").Hidden = True Case "12 Weeks" Columns("J:O").Hidden = True Columns("P:R").Hidden = False End Select End Sub 

В названии я включил это был контроль формы. – phentrus 8 минут назад

Причина, по которой я был в замешательстве и спросил вас в комментариях выше, используете ли вы элемент управления формой или элемент управления ActiveX, потому что ваш заголовок quesiton говорит «Форма», но код для ActiveX.

Для управления формой вставьте этот код в модуль.

 Option Explicit Sub DropDown1_Change() Dim DDown As Shape Set DDown = ActiveSheet.Shapes(Application.Caller) Select Case DDown.ControlFormat.List(DDown.ControlFormat.ListIndex) Case "2 Weeks" Columns("J:L").Hidden = False Columns("M:R").Hidden = True Case "6 Weeks" Columns("J:L").Hidden = True Columns("M:O").Hidden = False Columns("P:R").Hidden = True Case "12 Weeks" Columns("J:O").Hidden = True Columns("P:R").Hidden = False End Select End Sub 

Затем щелкните правой кнопкой мыши свой Form Combobox и назначьте ему макрос:

  • Экземпляр Excel Combo условный Если инструкция для обнаружения пустого
  • Excel VBA Combo Box Macro для изменения элементов списка
  • Как создать combobox в активной ячейке?
  • Я хочу, чтобы подпрограмма запускалась каждый раз, когда выбрано значение combobox. Как мне это сделать?
  • Могу ли я иметь источник строк для combobox с диапазонами от двух разных листов?
  • Combobox с предложениями поиска на мобильном устройстве
  • activex-combobox для столбца name в excel
  • Эквалайзер Excel VBA со списком показывает #####?
  • VBA Combo Box oDictionary Метод Повторяющиеся значения
  • VBA: Поместите значение трех ComboBox в одну ячейку Excel
  • Как обновить содержимое файла перед его чтением?
  • Interesting Posts
    Давайте будем гением компьютера.