2016-12-06 26 views
0

もう一度お返事が必要です。 2つの条件に基づいてメッセージボックスを作成しようとしています。 私は2つのリストを持っています: 1から20までの番号を持つもの。 そして2番目のものは:単一在庫、単一オプション、ストックのバスケットおよびオプションのバスケットです。2つの条件に基づくメッセージボックス

Sheet "Input"セル "F7"でSingle Stock/Single Optionを選択した場合は、セル "F8"で数字 "1"を使用できるだけで、エラーのあるメッセージボックスが表示されます。

シート「入力」セル「F7」のストック/オプションのバスケットを選択する場合は、セル「F8」で数字> 1を使用することができます。そうでない場合、エラーのあるメッセージボックスが表示されます。

私はこのコードを使用しようとした

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

投稿したコードにはさまざまな問題があります。まず、サポートされていないサブMsg_exeを2回宣言します。第2に、ターゲットを参照しますが、どちらのメソッドシグネチャにもTargetという名前の変数はありません。 – Sorceri

+1

'.Address'も" Stock "のようなものを返すことはありません。もしそれがあっても、2つの異なる値をチェックするので、これは決して何もしません。 – arcadeprecinct

+0

@ソルセリどのように解決策を見つけることは可能ですか? 私は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

よりもむしろあなただけのセル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,""))

関連する問題