Excel 单独计算细胞变化
我有个小问题。我编辑了一段代码来计算所选单元格的单元格更改,这些更改实际上非常有效。此代码进入工作表编码,而不是作为单个宏运行。 如何能够为不同的区域计数并行运行相同的代码,而不是另一个监视不同单元格的代码。 我尝试了double IF,如果是什么给了我一个错误,我在不同的sub下尝试了相同的代码 目前,代码监视C8单元的变化,并在D8中计数。 我需要为C16运行另一个计数器,并在D18中计数。 如果我需要用单独的计数器监控多个单元格,我该怎么做Excel 单独计算细胞变化,excel,counter,monitor,Excel,Counter,Monitor,我有个小问题。我编辑了一段代码来计算所选单元格的单元格更改,这些更改实际上非常有效。此代码进入工作表编码,而不是作为单个宏运行。 如何能够为不同的区域计数并行运行相同的代码,而不是另一个监视不同单元格的代码。 我尝试了double IF,如果是什么给了我一个错误,我在不同的sub下尝试了相同的代码 目前,代码监视C8单元的变化,并在D8中计数。 我需要为C16运行另一个计数器,并在D18中计数。 如果我需要用单独的计数器监控多个单元格,我该怎么做 Dim xCount As Intege
Dim xCount As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range, xCell As Range
On Error Resume Next
If Target = Range("C8") Then
xCount = xCount + 1
Range("D8").Value = xCount
End If
Application.EnableEvents = False
Set xRg = Application.Intersect(Target.Dependents, Me.Range("C8"))
If Not xRg Is Nothing Then
xCount = xCount + 1
Range("D8").Value = xCount
End If
Application.EnableEvents = True
End Sub
编辑:
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
Private子工作表\u更改(ByVal目标作为范围)
尺寸xRg作为范围,xCell作为范围,范围,x作为长度
变暗deps As范围
如果Target.Count>1,则退出Sub,这些“计数器”将保存在工作簿中,直到代码更改为止。这些计数器持续计数,并在代码更改时重置。工作簿本身保持计数器“位置”,请自己尝试。它不起作用。如果我改变了C8中的某些内容,D16也会计数。我只是链接了一张上传的关于工作表的图片。我的细胞基本上含有更多的“成分”。如果我更改了其中任何一个,我需要一个计数器来计算不同组的每个更改。那将是仓库的批量编码系统。您最初的帖子使用了一个全局变量来保持计数-这只在单个会话中有效,如果您重新打开工作簿,它将始终重置为零。这真的是你想要的行为吗?我不想在关闭和重新打开时重置它。我真正需要的是我发布的原始代码,但要在“同一时间”运行3个实例,但要观察不同单元格的变化。可能需要一个整数来监视“最后一个计数器”的位置?o、 OSee我的编辑-我在您的原始代码中留下了一行,删除全局/静态计数器会稍微简化代码。