Excel 在单元格中输入日期时,如何重新计算子运行?

Excel 在单元格中输入日期时,如何重新计算子运行?,excel,vba,Excel,Vba,在单元格中输入日期时,如何重新计算子运行 我的目标是在更新单元格B9或C9中的日期时运行宏 Sub AgeReductionAge_Calc() Dim dt1 As Date Dim dt2 As Date Dim nWeeks As Integer dt1 = Range("B9") dt2 = Range("C9") nWeeks = DateDiff("yyyy", dt1, dt2) Range("D9") = nWeeks

在单元格中输入日期时,如何重新计算子运行

我的目标是在更新单元格B9或C9中的日期时运行宏

Sub AgeReductionAge_Calc()
    Dim dt1 As Date
    Dim dt2 As Date
    Dim nWeeks As Integer

    dt1 = Range("B9")
    dt2 = Range("C9")

    nWeeks = DateDiff("yyyy", dt1, dt2)
    Range("D9") = nWeeks
End Sub

Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$9" Then
    Call AgeReductionAge_Calc  
  End If
End Sub

Sub Worksheet_Change2(ByVal Target As Range)
  If Target.Address = "$C$9" Then
    Call AgeReductionAge_Calc
  End If
End Sub

它不起作用吗?是否将宏放在工作表模块中?另外,如果您的第二个
。\u Change2
不会在工作表更改时触发。您应该将该部分添加到第一个
\u Change
事件的
If
语句中<代码>如果Target.Address=“$B$9”,则。。。ElseIf Target.Address=“$C$9”那么…为什么不在D9中使用公式
=DATEDIF(B9,C9,y”)
?请参阅:工作表最初是这样配置的,但有几个公式正在传输到VBA中。