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

我相信这个问题有一个非常简单的答案(我不知道我有问题的问题,或谷歌会给我答案)。

我有以下公式:

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

我希望能够在一个单元格中input一个数字(比如14),并且运行该公式,除了input到单元格中的数字应该replace公式中的数字8。 所以再次input14,执行的公式是:

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

所以要回顾一下,工作stream程是这样的:

  1. 我在单元格A3中input值“14”。
  2. 上面的公式被执行
  3. A3的显示值类似于3/14/2012(取决于我的V1 / V2单元值)

我可以做这个没有VBA? (我是交易的.NET程序员,所以VBA对我来说不是外来的,我只是觉得Excel应该可以在没有代码的情况下做到这一点)。

不可以 – 因为您将通过公式将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