我想在excel中的另一个单元格上更新日期时,增加单元格上的数字
我在A1中有日期,在B1中有数字,同样地,在D1中有日期,在E1中有数字。我希望b1和e1分别在A1和D1中的值发生变化时增加1个数字。我希望将相同的逻辑应用于所有的行ex(如果a2中有变化,则b2应增加1个数字,如果a3中有更新,则b3应增加1个数字。类似地,如果d2更新,则e2应增加1个数字,如果d3更新,则e3应增加1个数字) 我尝试过使用这个VBA代码我想在excel中的另一个单元格上更新日期时,增加单元格上的数字,excel,vba,Excel,Vba,我在A1中有日期,在B1中有数字,同样地,在D1中有日期,在E1中有数字。我希望b1和e1分别在A1和D1中的值发生变化时增加1个数字。我希望将相同的逻辑应用于所有的行ex(如果a2中有变化,则b2应增加1个数字,如果a3中有更新,则b3应增加1个数字。类似地,如果d2更新,则e2应增加1个数字,如果d3更新,则e3应增加1个数字) 我尝试过使用这个VBA代码 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersec
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
Range("B1").Value = Range("B1").Value + 1
Application.EnableEvents = True
End If
If Not Intersect(Target, Range("D1")) Is Nothing Then
Application.EnableEvents = False
Range("E1").Value = Range("E1").Value + 1
Application.EnableEvents = True
End If
End Sub
但是,当我尝试将范围放入这些单元格时,它只对这些特定单元格有效,而不起作用。我现在没有excel可用,但请尝试此方法
Private Sub Worksheet_Change(ByVal Target As Range)
Dim shAdd as string
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Application.EnableEvents = False
shAdd = "B" & Target.Row
Range(shAdd).Value = Range(shAdd).Value + 1
Application.EnableEvents = True
End If
If Not Intersect(Target, Range("D:D")) Is Nothing Then
Application.EnableEvents = False
shAdd = "E" & Target.Row
Range(shAdd).Value = Range(shAdd).Value + 1
Application.EnableEvents = True
End If
End Sub
它不适用于您的原因是代码中的这一行Intersect(Target,Range(“A1”))
仅指单元格“A1”
,而不是整个列。将其替换为“A:A”
,我将引用整个列。这将检查目标
是否是列A中的任何单元格。
此外,为了确保正确的单元格与更改的单元格在同一行上递增,我使用了目标
的行
属性。由于要递增的单元格总是在B列或E列中,我只需要将目标
的行附加到列字母,并将其作为字符串传递到范围
此处的功能
shAdd = "E" & Target.Row
Range(shAdd).Value = Range(shAdd).Value + 1
你们是一个救世主。非常感谢你们这么做,它是有效的。这篇文章也可能是相关的。