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

謝謝!你是一個明星! –