2017-07-19 69 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

谢谢!你是一个明星! –