2017-01-20 12 views
1

target.valueとtarget.addressをサブルーチンに渡そうとしていますが、何らかの理由で「Expected:=」というエラーが発生しています。サブルーチンに2つの値を渡す

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$A$2" Then 
     sendToRoutine (Target.Address, Target.Value) <<== Error 
    End If 
End Sub 


Sub sendToRoutine (myTarget as String, myTargetValue as String) 
    'Do Something with the values.... 
End Sub 
+1

「Call」を行の前に置くか、条件の周囲で '()'を削除します。 –

+0

geez、私はvba lolをどれくらい知っているか教えてください –

+0

[これは混乱しています。どうして括弧を使うのはなぜですか?](http://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-always-use-parentheses#t=201701202011114768015 )onスタックオーバーフローのドキュメント。 –

答えて

1

あなたの機能の前にはCallがありません。

Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$A$2" Then 
     Call sendToRoutine(Target.Address, Target.Value) '<<== Not an error 
    End If 
End Sub 


Sub sendToRoutine(myTarget As String, myTargetValue As String) 
    'Do Something with the values.... 
End Sub 
+0

またはそれ以上:かっこを削除して、下位互換性の理由から言語でのみ使用される[廃止](http://rubberduckvba.com/Inspections/Details/ObsoleteCallStatementInspection)キーワードを使用しないでください。 –

関連する問題