繁体   English   中英

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

[英]i want to increment the number on a cell when date is updated on another cell in excel

我在 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"替换它,我引用了整个列。 这会检查TargetA列中任何单元格。 此外,为了确保正确的单元格与更改的单元格在同一行上递增,我使用了Target.Row属性。 由于要递增的单元格始终位于 B 列或 E 列中,因此我只需要将Target的行附加到列字母并将其作为字符串传递给此处的Range函数

shAdd = "E" & Target.Row
Range(shAdd).Value = Range(shAdd).Value + 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM