2017-02-07 5 views
-1

Я пытаюсь использовать comboboxes, чтобы скрыть/показать некоторые разделы моего листа excel.ComboBox переопределяет другой ComboBox, используя Excel 2013 VBA

У меня есть одно поле со списком, которое скрывает/скрывает определенный блок (ComboBox1) из ячеек, а другой - скрывает/скрывает разделы ячеек внутри этого блока (ComboBox2).

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

Есть ли способ выполнить ComboBox2 после нажатия ComboBox1, чтобы обновить рабочий лист.

Private Sub ComboBox3_Click() 
    ComboBox3.TextAlign = fmTextAlignCenter 
    ComboBox3.List = Array("1", "2", "3", "4") 
    If ComboBox3.Value = "1" Then 
     'ranges to be hidden = True/False 
    End If 
End Sub 
Private Sub ComboBox4_Click() 
    ComboBox4.TextAlign = fmTextAlignCenter 
    ComboBox4.List = Array("0", "5", "6", "7", "8", "9", "10") 
    If ComboBox4.Value = "0" Then 
     'Ranges to be hidden in ComboBox3 block of cells' 
    End if 
End Sub 

ответ

1

Если вы просто хотите, чтобы вызвать событие, просто позвоните ComboBox4_Click

Private Sub ComboBox3_Click() 
    ComboBox3.TextAlign = fmTextAlignCenter 
    ComboBox3.List = Array("1", "2", "3", "4") 
    If ComboBox3.Value = "1" Then 
    'ranges to be hidden = True/False 
    End If 

    Combo4Handler 

End Sub 
Private Sub ComboBox4_Click() 
    Combo4Handler 
End Sub 

Private Sub Combo4Handler() 
    ComboBox4.TextAlign = fmTextAlignCenter 
    ComboBox4.List = Array("0", "5", "6", "7", "8", "9", "10") 
    If ComboBox4.Value = "0" Then 
    'Ranges to be hidden in ComboBox3 block of cells' 
    End if 
End Sub 
+0

К сожалению, в VBA вы не можете использовать «Вызов», чтобы вызвать событие. Есть ли другой способ сделать это. Извините, что я очень новичок в VBA –

+0

OK см. Мое редактирование. просто вызовите ComboBox4_Click в конце ComboBox3_Click. Также вам нужно заполнить comboboxes каждый раз, когда пользователь нажимает на него? – Shmukko

+0

Это решает все мои проблемы! Большое спасибо! Также да, это переменная набора, которая должна заполняться каждый раз, когда пользователь нажимает на нее. –