在数百个Excel工作簿中汇总同一个单元格

我有大约500个时间卡。 每个时间卡都是自己的文件(.xls工作簿)。 我需要所有这些工作簿中的单元格K5。 这是一次性的事情(每个季度) – 如果这500多个时间卡中的任何一个发生变化,我不需要更新结果。

如果有一个函数需要两个参数 – 1)包含Excel文件的目录的名称; 2)你想要的特定单元格总计。

经过3.5个小时的search,Excel论坛没有帮助。 我必须使用错误的关键字,因为我不能相信Excel没有这样的基本function。 (如果我在同一个工作簿中有多个工作表,我确实发现了一些东西 – 我们不能将所有这些时间卡都保存在同一个文件中,同时打开所有的工作簿将会非常繁琐 – +双击)。

谢谢。

(Windows XP SP3; Microsoft Office Excel 2003)

这是一些代码,将提示select一个文件夹,然后循环该文件夹中的所有文件的工作表名称[Worksheetname =“Sheet1”][CELL =“K5”]并总计单元格K5中的总数。

希望这会让你开始。 您将需要确保所有文件都有一个有效的“工作表名”或插入一个testing。

Option Explicit Private Sub ReadFilesinFolder() '**Opens File Dialog and cycles all files for batch or just single file Dim objFs As Object, objF As Object, objF1 As Object, objFc As Object Dim strEndofPath As String, strFilePath As String, strFilename As String Dim lngCount As Long, Worksheetname As String, CELL As String, objWB As Workbook, objWS As Worksheet Dim dblTOTAL As Double Worksheetname = "Sheet1" CELL = "K5" With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = False .Show If .SelectedItems.Count = 0 Then End End If For lngCount = 1 To .SelectedItems.Count strEndofPath = InStrRev(.SelectedItems(lngCount), "\") strFilePath = Left(.SelectedItems(lngCount), strEndofPath) strFilename = Right(.SelectedItems(lngCount), Len(.SelectedItems(lngCount)) - strEndofPath) Next lngCount End With Set objFs = CreateObject("Scripting.FileSystemObject") Set objF = objFs.GetFolder(strFilePath) 'Batch Import Set objFc = objF.Files For Each objF1 In objFc DoEvents Set objWB = GetObject(objF1) Set objWS = objWB.Sheets(Worksheetname) dblTOTAL = dblTOTAL + objWS.Range(CELL).Value objWB.Close Set objWB = Nothing Next objF1 msgbox dblTOTAL End Sub 
Interesting Posts