在单元格中输入值,具有公式的显示值结果

时间:2012-02-11 08:27:35

标签: excel excel-formula

我确信这是一个非常简单的答案(我不知道我有excel印章来问“正确”的问题,或谷歌会给我答案)。

我有以下公式:

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

我希望能够在一个单元格中输入一个数字(例如,14)并运行该公式,除了我输入单元格的数字应该替换公式中的数字8。因此,再次输入14,将执行的公式将是:

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

回顾一下,工作流程如下:

  1. 我在单元格A3中输入值'14'。
  2. 执行上述公式
  3. A3的显示值类似于3/14/2012(取决于我的V1 / V2单元格值)
  4. 我可以在没有VBA的情况下这样做吗? (我是一名.NET程序员,所以VBA对我来说并不陌生,我只是觉得Excel应该能够在没有代码的情况下完成本地化。)

1 个答案:

答案 0 :(得分:1)

否 - 因为您通过公式将A3中的值传输到A3中的新值。

当任何这些单元格被更改时,下面的代码将更新A1:A5(如果所有单元格都被更改,则全部为5),并提供您要求的结果

  1. 右键单击工作表标签
  2. 查看代码
  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