我有一个小问题。我编辑了一个代码,以计算所选单元格的单元格变化,实际上效果很好。此代码进入工作表编码,而不是作为单独的宏运行。 如何针对不同的区域并行地运行相同的代码,而与另一个监视不同的单元格分开进行计数。 我尝试使用double IF导致了错误,然后在不同的子项下尝试了相同的代码。
目前,监视C8单元的代码已更改并在D8中计数。 我需要为C16运行另一个计数器并在D18中计数。 如果我需要使用单独的计数器监视多个单元格,该怎么办?
[[63, 66, 69], [72, 75, 78], [81, 84, 87]]
答案 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