2016-12-06 3 views
0

Мне нужна ваша помощь еще раз. Я пытаюсь создать окно сообщений на основе двух условий. У меня есть два списка: Один с номерами от 1 до 20. И второй с: Одиночный запас, Одиночный вариант, Корзина с запасами и корзина опций.коробка сообщений на основе двух условий

При выборе Единого запаса/Одиночной опции в ячейке «Вход» «F7» в листе можно использовать только номер «1» в ячейке «F8», в противном случае должно отображаться окно сообщений с ошибкой.

При выборе Корзины запасов/опций в ячейке «Вход» «F7» в листе «Использовать номер> 1 в ячейке« F8 »должно быть возможно только поле« Сообщение »с ошибкой.

Я пытался использовать этот код:

Sub Msg_exe() 
If Target.Address = "$F$8" Then 
    If Target.Value > 2 Then 
    If Target.Address = "Stock" Then 
     If Target.Address = "Option" Then 
     MsgBox "Error!", vbExclamation, "Error" 
     End If 
    End If 
    End If 
End If 

Sub Msg_exe() 
If Target.Address = "$F$8" Then 
    If Target.Value < 2 Then 
    If Target.Address = "Basket of Stocks" Then 
     If Target.Address = "Basket of Options" Then 
     MsgBox "Error!", vbExclamation, "Error" 
     End If 
    End If 
    End If 
End If 
+1

Есть все виды проблем с кодом, который вы отправили, сначала вы объявляете sub Msg_exe дважды, который не поддерживается. Во-вторых, вы ссылаетесь на Target, но в любой из сигнатур метода нет переменной Target. – Sorceri

+1

'.Address' также никогда не вернет что-то вроде« Stock », и даже если бы это было так, вы проверяете два разных значения, чтобы это никогда ничего не делало. – arcadeprecinct

+0

@Sorceri Как можно найти решение? У меня нет опыта использования VBA, поэтому я был бы признателен за любую помощь – excelnewbie

ответ

0

Вы можете начать с этого кода:

If Target.Address = "$F$8" Then 
    Select Case Range("F7") 
     Case "Single Stock", "Single Option" 
      If Range("F8").Value <> 1 Then MsgBox "Error!", vbExclamation, "Error" 
     Case "Basket of Stocks", "Basket of Options" 
      If Range("F8").Value <= 1 Then MsgBox "Error!", vbExclamation, "Error" 
    End Select 
End If 
2

Вместо того чтобы использовать VBA вы можете просто добавить проверку данных в ячейку F8:
=IF(OR($F$7="Stock",$F$7="Option"),$F$8=1,IF(OR($F$7="Basket of Stocks",$F$7="Basket of Options"),$F$8>1,""))

Смежные вопросы