我确信这是一个非常简单的答案(我不知道我有excel印章来问“正确”的问题,或谷歌会给我答案)。
我有以下公式:
=DATE(YEAR(V1), MONTH(V1)+V2-1,8)
我希望能够在一个单元格中输入一个数字(例如,14)并运行该公式,除了我输入单元格的数字应该替换公式中的数字8。因此,再次输入14,将执行的公式将是:
=DATE(YEAR(V1), MONTH(V1)+V2-1, 14)
回顾一下,工作流程如下:
我可以在没有VBA的情况下这样做吗? (我是一名.NET程序员,所以VBA对我来说并不陌生,我只是觉得Excel应该能够在没有代码的情况下完成本地化。)
答案 0 :(得分:1)
否 - 因为您通过公式将A3中的值传输到A3中的新值。
当任何这些单元格被更改时,下面的代码将更新A1:A5(如果所有单元格都被更改,则全部为5),并提供您要求的结果
复制并粘贴以下代码
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