2012-02-11 98 views
1

我确信有一个非常简单的答案(我不知道我有excel chops来问“正确”的问题,或谷歌会给我的答案)。在单元格中输入值,并显示公式的结果值

我有以下公式:

=DATE(YEAR(V1), MONTH(V1)+V2-1,8) 

我希望能够进入一个数字细胞(比如14),并有公式来看,除了我进入数细胞应取代公式中的数字8。所以,再次进入14,将会执行这个公式将是:

=DATE(YEAR(V1), MONTH(V1)+V2-1, 14) 

因此,要回顾一下,工作流程是这样的:

  1. 我输入值“14”到单元格A3。
  2. 上述公式执行
  3. A3的显示值是一样的东西3/14/2012(根据我的V1/V2的单元格值)

我能做到这一点,而不VBA? (我是一个.NET程序员,所以VBA对我来说并不陌生,我只是觉得Excel应该能够在没有代码的情况下完成本地化)。

回答

1

否 - 因为您将通过公式将A3中的值转换为A3中的新值。当这些细胞被改变(所有5个,如果一下子改变)你问

  1. 结果右键单击您的工作表标签
  2. 查看A5:

    下面的代码将更新A1代码

  3. 复制并粘贴下面的代码

    Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim rng1 As Range 
    Dim rng2 As Range 
    Set rng1 = Intersect(Range("a1:A5"), Target) 
    If rng1 Is Nothing Then Exit Sub 
    Application.EnableEvents = False 
    For Each rng2 In rng1 
        rng2.Value = Format(Evaluate("DATE(YEAR(V1), MONTH(V1)+V2-1," & CLng(rng2.Value) & ")"), "mm/dd/yyyy") 
    Next rng2 
    Application.EnableEvents = True 
    End Sub 
    
+0

作品完美。谢谢布雷特。 – 2012-02-11 19:14:12

相关问题