【发布时间】:2020-08-31 17:43:03
【问题描述】:
我在不同的工作簿中有每周时间表。在月底,我需要在创建月度发票时汇总所有工作簿中的所有小时数。工作表名称和单元格地址在所有工作簿中都相同。工作表名称为“Weekly ACT Rpt Billable”。总小时数存储在单元格 I21 中,因此地址为“Weekly ACT Rpt Billable”!$I$21。
我想要一个对所有打开的工作簿中的所有“每周 ACT Rpt Billable”求和的宏!$I$21。
这是我目前所拥有的。它适用于 1 个工作簿,但不适用于超过 1 个打开的工作簿
Sub SumCellOpenWorkbooks()
Dim iWbCount As Integer, sSumAddress As String
For iWbCount = 1 To Workbooks.Count
If Not (Workbooks(iWbCount).Name = "PERSONAL.XLSB" Or Workbooks(iWbCount).Name = "Book1") Then
sSumAddress = "'[" & Workbooks(iWbCount).Name & "]" & "Weekly ACT Rpt Billable'!" & "$I$21"
Debug.Print sSumAddress
ActiveSheet.Range("A1").Formula = "=sum(" & sSumAddress & ")"
End If
Next
End Sub
【问题讨论】:
-
您为循环中的每个工作簿覆盖 A1 中的公式。您是否需要一个公式,或者您可以在循环中保留一个运行总计,然后在您完成循环后将其添加到 A1?
-
我会考虑一个汇总表,每个工作簿都有一个单元格,然后检查缺失值更容易......
标签: excel vba excel-formula