2017-01-12 6 views
0

テスト用の非常に単純なブックブックマクロがあり、条件が満たされても実行されません。なぜなのかご存知ですか?マクロは有効になっており、モジュールは機能していますが、シートコードは機能しません。どんな考え?条件が満たされたときにシート固有のマクロが実行されない

Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$J$3" Then 
     Call macro1 
    End If 
End Sub 

そして、私は、セルJ3に何かを調整したり、置くならば、私は

if A1 = "correct!" 
    msgbox "hey" 
else <do nothing> 

を試してみました "修正!"そのシートのA1にはどちらのコードも実行されません。マクロ1のコードは単にmsgbox "Hey"です。私は何をすることができますか?

ありがとうございます!

+1

がMacro1をですLike演算子を使用していますか? 2行目のコードには最初の行で "then"がなくなり、 "else "を "End if"で置き換えるとうまくいくはずです。 –

+1

'Application.EnableEvents'が' False'に設定されていないことを確認してください。 'immediate window'でそれをチェックすることができます:'?Application.EnableEvents' –

答えて

0

私はWorkbook_SheetChangeを使用し、それが私の仕事:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    If Sh.Name = "Sheet1" And Target.Address = "$J$3" Then 
     Call macro1 
    End If 
End Sub 

Sub macro1() 
    MsgBox "hello world!" 
End Sub 
+0

残念ながら、どちらのオプションも機能しませんでした。コード自体は実行されないようです –

0

私はあなたがCell J3でのワークシート内の値、およびセルの値を変更したら、あなたが欲しい、私が正しくあなたのポストを理解してい願っていますA1(同じワークシート上の)が「正しい!」と表示され、MsgBoxの「ちょっと」がポップアップ表示されます。

Worksheet_Changeイベントのコードは、macro1(別のコードモジュールに配置することができます)のコードを変更するだけです。

Sub macro1() 

If Range("A1").Value = "correct!" Then 
    MsgBox "hey" 
End If 

End Sub 

オプション2:あなたの現在のワークブックに

If Range("A1").Value Like "correct!" Then 
    MsgBox "hey" 
End If 
+0

残念ながら、どちらのオプションも機能しませんでした。コード自体は実行されないようです –

関連する問題