“I”列中的单元格的值始终由字母“KW”+数字组成,例如“K31”。我需要比较单元格的数字部分。 “M”列中的值将取决于“I”列中单元格的先前值和当前值之间的差异。例如:“I6”的值为“K37”,则更改为“K39”,“M”列中相应单元格的新值必须更改为“GL”。规则是,如果差异为 2,则“M”列中的单元格值将更改为“GL”,如果差异大于 2,则该值将更改为“FAL”。
此外,第一次在“I”列的任何单元格中插入值时,“M”中的默认值必须为“PV”。
我可以使用 Worksheet_SelectChange 事件保存先前的值,并将其与当前值进行比较,但它效果不佳,即使先前值与当前值之间的差异为 2,“M”列中的单元格始终更改为“FAL”而不是“GL”,只有当差异为 3 或更大时才应更改为“FAL”。
`
公共预值作为变体
私有子工作表_SelectChange(ByVal Targe As Excel.Range)
Dim rnc As Range, celda As Range
Set rnc = Intersect(Target, Me.Range("I:I"))
If rnc Is Nothing Then Exit Sub
For Each celda In rnc
PreValue = CInt(Right(celda.Value, 2))
Next
结束子
私有子工作表_更改(ByVal 目标为 Excel.Range)
Set rnc = Intersect(Target, Me.Range("I:I"))
If rnc Is Nothing Then Exit Sub
If Not rnc Is Nothing Then
For Each cell In rnc
On Error Resume Next
Dim PaNum As Variant
PaNum = CInt(Right(cell.Value, 2))
Dim NumFila1 As Long
NumFila1 = cell.Row
MsgBox ValorAnterior
If PreValue = "" Then
Cells(NumFila1, 13).Value = "Portavoz"
End If
If PaNum - PreValue = 2 Then
Cells(NumFila1, 13).Value = "GL"
End If
If PaNum - PreValue >= 3 Then
Cells(NumFila1, 13).Value = "FAL"
End If
Next
End If
结束子
子错误处理程序()
退出子目录
结束子
`