我有一张工作表,用户每天打开它并单击一个按钮,将当前工作表复制到新工作表并重命名(第 1 天、第 2 天等)。
我想在这些工作表的某些单元格中保留累计计数。例如,第一天,工作表中的“每日”列中输入了 1 起安全事件,而“累计”列计算为 1。当创建第 2 天的工作表时,我希望“累计”列将第 1 天的事件添加到第 2 天“每日”单元格中输入的任何事件编号中。然后,当创建第 3 天的工作表时,我希望它在“累计”单元格中汇总所有 3 天的所有事件。
一个项目可能有任意天数,我希望最近一天的累计事件数始终正确。工作簿中的其他工作表也需要从最新工作表中提取信息。这可能吗?
答案1
这假设您按照问题中所述命名工作表,并且新工作表处于活动状态。您将此代码添加到现有代码的末尾。它将创建一个公式来计算您寻求的累积值。当用户输入或更改事件数中的值时,它将更新。
Dim intLast
Dim strSheet As String
'Get name of active sheet
strSheet = ActiveSheet.Name
If strSheet <> "Day 1" Then 'Skips the Day 1 sheet
intLast = Right(strSheet, 1) - 1
strSheet = "Day " & intLast
'Add formula to sum total from the previous day and this sheet
Range("C1").Formula = "=A1+'" & strSheet & "'!C1"
End If
intLast = ""
strSheet = ""
更改代码,使单元格地址“C1”成为您想要累计总数的地址。另外,更改A1
为具有用户输入的安全事故值的单元格。