我的问题如下: 我有一个模板,我使用VBA填充。当他们来来往往时,我输入员工的时间价值。在表格的底部,模板中有一个公式,用于总计工作小时数。
一个典型的集合看起来像这样......
A1: 08:00
A2: 12:00
A3: 13:00
A4: 17:00
A5: =(A1-A2)+(A3-A4)
如果员工已经工作了一个额外的时间段,让我们说从18:00-22:00,那么我需要将其添加到模板中。我这样做是在A4下方插入两行并从上面的行复制格式。所有这一切都与VBA有关。所以工作表现在看起来像这样:
A1: 08:00
A2: 12:00
A3: 13:00
A4: 17:00
A5: 18:00
A6: 22:00
A7: =(A1-A2)+(A3-A4)
我的问题是我需要调整A7中的公式,并且它绝对需要成为一个公式,因为员工应该能够在我创建之后在预先填充的模板中输入值。
我不知道怎么做。
非常感谢任何建议!谢谢!
答案 0 :(得分:1)
由于您的数据在单个列中的值为对,因此您只需创建正确的公式并将其放在列的底部:
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)