gpt4 book ai didi

对数百个 Excel 工作簿中的相同单元格求和

转载 作者:行者123 更新时间:2023-12-04 20:47:45 26 4
gpt4 key购买 nike

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

如果有一个带有两个参数的函数会很棒 - 1)包含 Excel 文件的目录的名称; 2)您想要总计的特定单元格。

经过 3.5 小时的搜索,Excel 论坛没有帮助。我一定使用了错误的关键字,因为我不敢相信 Excel 没有这样的基本功能。 (如果我在同一个工作簿中有多个工作表,我确实找到了一些东西 - 我们将无法在同一个文件中维护所有这些时间卡,并且同时浏览和打开所有工作簿将非常乏味 - 500 + 双击。)

谢谢。

(Windows XP SP3;Microsoft Office Excel 2003)

最佳答案

这是一些代码,将提示选择一个文件夹,然后循环该文件夹中的所有文件以获取工作表名称 [Worksheetname = "Sheet1"] 和 [CELL = "K5"],并将单元格 K5 中的总数相加。

希望这会让你开始。您需要确保所有文件都具有有效的“工作表名称”或插入测试。

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

关于对数百个 Excel 工作簿中的相同单元格求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6576495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com