Я хочу, чтобы разные макросы запускались, когда в моем списке Excel выбраны разные элементы.Это прекрасно работает, когда диапазон ввода представляет собой целое число (см. Код VBA ниже).
Sub Hide_Charts_Combobox()
'
' Hide_Charts_Combobox
'
Dim X As ControlFormat
Set X = ActiveSheet.Shapes("Drop Down 95").ControlFormat
If X = 1 Then
Hide_Matrix
ElseIf X = 2 Then
Hide_Radar
ElseIf X = 3 Then
Hide_Goal_Ranks
ElseIf X = 4 Then
Hide_Goal_Ranks_bd
ElseIf X = 5 Then
Hide_KPI_Values
ElseIf X = 6 Then
Hide_Goal_Ratio
ElseIf X = 7 Then
Hide_KPI_Ratio
ElseIf X = 8 Then
Hide_Unitized_Ratio
End If
'
End Sub
Однако я не хочу, чтобы мой диапазон ввода в выпадающем списке был числом;Я хочу определенные слова вместо этого.Когда я заменяю входные данные строками, макрос просто не запускается (ошибок тоже не возникает).Это фактический код, который я хочу использовать (и который в настоящее время не работает):
Sub Hide_Charts_Combobox()
'
' Hide_Charts_Combobox
'
Dim X As ControlFormat
Set X = ActiveSheet.Shapes("Drop Down 95").ControlFormat
If X = Matrix Then
Hide_Matrix
ElseIf X = Radar Then
Hide_Radar
ElseIf X = Goal Ranks Then
Hide_Goal_Ranks
ElseIf X = Goal Breakdown Then
Hide_Goal_Ranks_bd
ElseIf X = KPI Values Then
Hide_KPI_Values
ElseIf X = Goal Ratios Then
Hide_Goal_Ratio
ElseIf X = KPI Ratios Then
Hide_KPI_Ratio
ElseIf X = Unitized Ratios Then
Hide_Unitized_Ratio
End If
'
End Sub
Я подозреваю, что это как-то связано с тем, что Dim X определяется как ControlFormat, который не может содержать строку, но яЯ не уверен.Что я должен сделать, чтобы это работало?