Realizar un seguimiento de cuántas veces cambia una celda.
Dado esta hoja de cálculo
Estoy tratando de rastrear cuántas veces se verifica un disco. Este es el código VBA que convertí para verificar filas en lugar de columnas. Copié este código de una publicación de robinCTS y lo modifiqué. El problema que observo es que cuando se cambia el valor en la celda B3, se agrega 1 a la celda B8 (Correcto). Si cambio un valor en la celda D13, nuevamente se actualiza la celda D8 (Incorrecto, debería ser la celda D18). Está en la columna correcta, pero en la fila incorrecta.
'==================================================================================================
' Módulo : <el módulo="" de="" la="" hoja="" apropiada="">
' Versión : 1.0
' Parte : 1 de 1
' Referencias: N/A
' Fuente : https://stackoverflow.com/a/47405528/1961728
'==================================================================================================
Option Explicit
Private Sub Worksheet_Change _
( _
ByVal Target As Range _
)
Const s_CheckRow As String = "3:3,13:13"
Const s_CountRow As String = "8:8,18:18"
If Intersect(Target, Range(s_CheckRow)) Is Nothing Then Exit Sub
Dim rngCell As Range
For Each rngCell In Intersect(Target, Range(s_CheckRow))
With Range(s_CountRow).Cells(rngCell.Column)
.Value2 = IIf(.Value2 <> vbNullString, .Value2 + 1, IIf(rngCell.Value2 <> vbNullString, 1, vbNullString))
End With
Next rngCell
End Sub
Entonces, ¿qué estoy haciendo mal?
davy.ai
El problema está en la segunda constante,
s_CountRow
. Actualmente tiene un error tipográfico y le falta una coma, lo cual provoca que la segunda fila sea incorrecta. Debería serConst s_CountRow As String = "8:8,18:18"
. Una vez que se realice este cambio, el código debería actualizar la celda correcta cuando se cambie un valor en cualquiera de las filas de verificación designadas.