代码之家  ›  专栏  ›  技术社区  ›  J.Doe

VBA工作表更改工作不正常?

  •  0
  • J.Doe  · 技术社区  · 8 年前

    我在工作表中编写了以下代码,所有范围都在同一张表中。

    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
    

    如果我在距离矩阵中选择一个单元格,我想运行一个被调用的sub。

    这在一定程度上起到了作用。我必须单击范围内的一个单元格,就像我想在其中写入一样,然后再选择另一个单元格,让被调用的sub运行。

    然而,我希望潜艇在我选择电池后立即运行。我不想去,必须双击它,就像它要编辑它,然后选择另一个运行。

    1 回复  |  直到 8 年前
        1
  •  1
  •   FunThomas    8 年前

    您可以使用 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