2012-01-02 12 views
1

ワークシートに次のコードを追加しようとしています。現時点では何もしません。ワークシートの変更方法に関する問題。変更できません

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address(False, False) = "j4" Then 
    Application.EnableEvents = False 
    If Target.Value = 0 Then 
     Range("j5").Value = 1 
    Else 
     Range("j5").Value = 2 
    End If 
    Application.EnableEvents = True 
End If 
End Sub 

コードのワークシートに配置され、マクロセキュリティが「すべてのマクロを有効にする」に設定されています。

私は

エクセル2010の64ビット版を使用していますあなたが提供することができます任意の助けてくれてありがとう。 James

+0

J4が変更されたときにJ5の値を設定しようとしていますか? –

+0

はい、それは完璧です! – James

+0

なぜこれにVBAを使用したいですか?セルJ5に数式を書き込むのが約20倍簡単です。 –

答えて

2

問題は初めてのIfです。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Range("J4")) Is Nothing Then 
     Application.EnableEvents = False 
     If (Target = 0) Then 
      Range("J5") = 1 
     Else 
      Range("J5") = 2 
     End If 
     Application.EnableEvents = True 
    End If 
End Sub 
+0

ありがとう、賢明に働いた。どのように選択のためにこれを拡張することをお勧めしますか? – James

+0

ああ、制御セル(すなわちJ4)が選択プルダウンであれば、これは機能しません。助言がありますか? – James

+1

@James。最も単純な非VBAソリューションは、セルJ5の式を '= IF(J4 = 0,1,2)'とすることです。私は唯一Excel 2003を持っているので、「選択プルダウン」は何ですか? 'Data> Validation'を使用し、ドロップダウンメニューに' List'を選択し、 'Source'をそれに応じて設定すると、デスクトップ上で動作します。 –

関連する問題