2017-07-19 5 views
0

私はワークシートに次のコードを書きましたが、すべての範囲は同じシートにあります。VBAワークシートの変更が正しく機能していませんか?

Private Sub Worksheet_Change(ByVal Target As Range) 
If Not Intersect(Target, Range("DistMatrix")) Is Nothing Then 
    Dim out1() As Double 
    out1 = OutStat(bucket(Target), Range("RegScale")) 
    FwdOut = outright(bucket(Target), Range("RegScale")) 
    Call NewScatter(FwdOut, out1) 
End If 
End Sub 

DistMatrixの範囲のセルを選択すると呼び出されたサブを実行します。

これは部分的に機能しています。範囲内のセルをクリックして、その中に書き込みたいかどうかを確認してから、呼び出されたサブの別のセルを選択して実行する必要があります。

私はセルを選ぶとすぐにサブを実行したいです。私はそれを編集するのと同じようにそれをダブルクリックしなければならないし、それを実行する別のものを選ぶ必要がありません。

答えて

1

代わりにWorksheet_SelectionChangeを使用できます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Intersect(Target, Range("DistMatrix")) Is Nothing Then 
     Dim out1() As Double 
     out1 = OutStat(bucket(Target), Range("RegScale")) 
     FwdOut = outright(bucket(Target), Range("RegScale")) 
     Call NewScatter(FwdOut, out1) 
    End If 
End Sub 
+0

ありがとうございました!君はスター !!! –

関連する問題