通过VBA扩展Worksheetformula而不写只有值

我的问题是以下几点:我有一个模板,我使用VBA填充。 我input员工来来往往的时间价值。 在表格底部有一个模板中的公式,总结了工作时间。

一个典型的集合看起来像这样…

A1: 08:00 A2: 12:00 A3: 13:00 A4: 17:00 A5: =(A1-A2)+(A3-A4) 

如果员工已经工作了一段时间,比如从18:00-22:00,那么我需要将其添加到模板中。 我通过在A4下方插入两行并从上面的行复制格式来完成此操作。 所有这些我都用VBA做的。 所以工作performance在看起来像这样:

 A1: 08:00 A2: 12:00 A3: 13:00 A4: 17:00 A5: 18:00 A6: 22:00 A7: =(A1-A2)+(A3-A4) 

我的问题是,我需要在A7中调整公式,而且绝对需要成为一个公式,因为员工在创build之后应该能够在预先填充的模板中input值。

我不知道如何做到这一点。

任何build议,非常感谢! 谢谢!

由于您的数据是单列中的成对值,因此您可以简单地创build适当的公式并将其放在列的底部:

 Sub FormulaMaker() Dim N As Long, sForm As String, sLittle As String N = Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To N - 1 Step 2 sLittle = "(A" & i & "-A" & i + 1 & ")" If sForm = "" Then sForm = "=" & sLittle Else sForm = sForm & "+" & sLittle End If Next i Cells(N + 1, "A").Formula = sForm End Sub 

你也可以使用(A2-A1)而不是(A1-A2)