单独计算单元格变化

时间:2018-07-18 19:44:27

标签: excel counter monitor

我有一个小问题。我编辑了一个代码,以计算所选单元格的单元格变化,实际上效果很好。此代码进入工作表编码,而不是作为单独的宏运行。 如何针对不同的区域并行地运行相同的代码,而与另一个监视不同的单元格分开进行计数。 我尝试使用double IF导致了错误,然后在不同的子项下尝试了相同的代码。

目前,监视C8单元的代码已更改并在D8中计数。 我需要为C16运行另一个计数器并在D18中计数。 如果我需要使用单独的计数器监视多个单元格,该怎么办?

[[63, 66, 69], [72, 75, 78], [81, 84, 87]]

1 个答案:

答案 0 :(得分:0)

已编辑

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim xRg As Range, xCell As Range, ranges, x As Long
    Dim deps As Range

    If Target.Count > 1 Then Exit Sub '<<<<<<<< added this...

    On Error GoTo haveError

    ranges = Array("C8", "C16")

    For x = 0 To UBound(ranges)

        Set xCell = Range(ranges(x))

        If Not Application.Intersect(Target, xCell) Is Nothing Then
            Application.EnableEvents = False
            xCell.Offset(0, 1).Value = xCell.Offset(0, 1).Value + 1
        End If

        Set deps = Nothing
        On Error Resume Next         'suspend error trapping
        Set deps = Target.Dependents
        On Error GoTo haveError      'resume trapping

        If Not deps Is Nothing Then
            Set xRg = Application.Intersect(Target.Dependents, xCell)
            If Not xRg Is Nothing Then
                Application.EnableEvents = False
                xCell.Offset(0, 1).Value = xCell.Offset(0, 1).Value + 1
            End If
        End If
    Next x

haveError:
    Application.EnableEvents = True

End Sub