我想在excel中的另一个单元格上更新日期时,增加单元格上的数字

我想在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

我在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 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

你们是一个救世主。非常感谢你们这么做,它是有效的。这篇文章也可能是相关的。