簡體   English   中英

Excel從多個工作簿獲取單元格值

[英]Excel get cell value from multiple workbooks

大家早上好,

我正在尋找將當前數據從多個“單位”工作簿導入“主”工作簿的系統的替代方案。 我的每個“單元”工作簿都是從固定模板構建的,因此它們的工作表名稱和單元格引用始終相同。 (工作表名稱是:一月,二月,三月,四月,...十二月)(文件名是:YYYY_Location_Description)

理想情況下,我希望能夠通過所有打開的工作簿文件簡單地進行求和。 我知道我可以使用Jan:Dec!A2:D5來完成工作。 但是,是否有辦法使它適應所有打開的工作簿文件?

目前,我有一個宏,可以系統地運行DIR列出的所有文件,並將數據一次一次從“單元”表中復制出來,然后粘貼到摘要表中。

每個月的“單位”表都包含該月的每一天的一行和各列,如下所示:

UnitA
Date   HrsA    HrsB    ValueA    ValueB    ValueC  ...
1      24      0       0.01      0.02      0.01
2      0       24      0.01      0.015     0.012
...

然后將宏復制的數據放置為以下格式:

Master
Date   Location    Value    HrsA    HrsB    Entry
1      UnitA       ValueA   24      0       0.01
1      UnitA       ValueB   24      0       0.02
1      UnitA       ValueC   24      0       0.01
1      UnitA       ValueA   0       24      0.01
1      UnitA       ValueB   0       24      0.015
1      UnitA       ValueC   0       24      0.012

“主”摘要表中有很多數據。 我希望能夠做的是:

=sum('[Workbook1.xls:WorkbookN.xls]Jan:Dec'!$A$2:$D$5)

有可能做這樣的事情嗎?

謝謝,

嘗試這樣的操作,只需遍歷每個打開的工作簿並評估指定范圍的Sum ,然后將該值寫入ActiveCell(或需要放置在任何位置)

Sub foo()
Dim wb as Workbook
Dim ret

For Each wb in Application.Workbooks
    '[Workbook1.xls:WorkbookN.xls]Jan:Dec'!$A$2:$D$5)
    ret = ret + Application.WorksheetFunction.Sum( _
                    "'[" & wb.Name & "]Jan:Dec'!$A$2:$D$5")
Next

ActiveCell.Value = ret
End Function

或嘗試使用以下方法來構建公式字符串:

Sub foo(Optional sheetRange As String = "Jan:Dec", Optional cellsRange As String = "A2:D5")
Dim wb As Workbook
Dim ret

For Each wb In Application.Workbooks
    ret = ret & "SUM('[" & wb.Name & "]" & sheetRange & "'!" & cellsRange & ")+"
Next
ret = Left(ret, Len(ret) - 1)
ret = "=" & ret
ActiveCell.Formula = ret
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM