消息框基于两个条件

时间:2016-12-06 16:22:09

标签: vba if-statement macros conditional-statements messagebox

我需要你的帮助。 我试图根据两个条件创建一个消息框。 我有两个清单: 一个数字从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

2 个答案:

答案 0 :(得分:2)

您可以将数据验证添加到单元格F8,而不是使用VBA:
=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,""))

答案 1 :(得分: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