У меня есть два раскрывающихся списка C1 и D1, где C1 содержит список стран. D1 должен действовать как раскрывающийся список только тогда, когда в списке C1 выбраны UAE и VN.
Если я выберу страну, отличную от ОАЭ и ВН, D1 будет действовать как обычная ячейка, а не раскрывающийся список.
Я не могу отключить раскрывающийся список, когда я выбираю страну, отличную от ОАЭ и ВН, D1 по-прежнему действует как раскрывающийся список.
Sub excelCode()
Dim myValue As Variant
myValue = ThisWorkbook.Worksheets("Sheet1").Range("C1").Value
If myValue = "UAE" Or myValue = "VN" Then
ActiveSheet.DropDowns("D1").Enabled = True
Else
ActiveSheet.DropDowns("D1").Enabled = False
End If
End Sub
Где используются a
и dd
?
Я запускаю этот код в приложении Visual Basic
a и dd больше нет извините за неудобства
У вас есть причина не использовать проверку данных?
Если нет, вы можете изучить каскадные/зависимые выпадающие меню.
@Rory Возможно ли это без использования сценария vba? когда я просмотрел некоторые статьи, они предложили мне использовать VBA
@cybernetic.nomad Я сделал только каскадное раскрывающееся меню, теперь мне нужно отключить этот раскрывающийся список при выборе другого раскрывающегося списка, как я упоминал в вопросе выше.
Да, вы просто формула, которая не возвращает допустимый диапазон, если ячейка не содержит ни одного из этих значений.
Код ниже будет only work on ActiveX List Boxes
. Поскольку в вашем описании используются значения «США» и «ОАЭ», а в вашем коде используются значения «ОАЭ» и «ВН», я решил использовать ваши кодовые значения, которые вы можете изменить в соответствии со своими потребностями. Place the code in your worksheet module
, измените номер листа по мере необходимости. ListBox2 will only be enabled
при выборе любого из двух значений; если выбрано любое другое значение, то ListBox2 will be disabled
.
Private Sub ListBox1_Click()
'You must use ActiveX Control List Box
With Sheet1.ListBox1
If .Value = "UAE" Or .Value = "VN" Then
Sheet1.ListBox2.Enabled = True
Else: Sheet1.ListBox2.Enabled = False
End If
End With
End Sub
Спасибо за ваш комментарий, мне нужно использовать список, а не список в моем коде
как/где вы запускаете этот код?