gpt4 book ai didi

excel - 循环遍历指定文件夹中的所有 Excel 文件并从特定单元格中提取数据的代码

转载 作者:行者123 更新时间:2023-12-01 18:35:00 25 4
gpt4 key购买 nike

我有大约 50 个左右的 Excel 工作簿,需要从中提取数据。我需要从特定单元格、特定工作表中获取数据并编译成一个数据集(最好是另一个 Excel 工作簿)。

我正在寻找一些 VBA,以便可以将结果编译到我用来运行代码的工作簿中。

因此,我需要从工作表(“DataSource”)中提取数据的 xls 或 xlsx 文件之一,我需要评估单元格(D4),如果它不为空,则从单元格(F4)中提取数据,并将其放入已编译数据集中的新行中。如上所述,循环访问该文件夹中的所有 Excel 文件。

如果可能的话,我希望第一列中的第一个数据字段是从结果数据集中提取数据的文件的名称。

有人可以帮我解决这个问题吗?我正在寻找 VBA,因为我对此更熟悉,但也对 VBScript 感兴趣(因为我正在尝试深入了解它并了解其中的差异)。

最佳答案

首先从 this google query 开始然后单击出现的第一个链接,该链接会将您带到 an article展示如何循环访问文件夹中的一组 Excel 文件。

Sub RunCodeOnAllXLSFiles()
Dim lCount As Long
Dim wbResults As Workbook
Dim wbCodeBook As Workbook


Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False

On Error Resume Next
Set wbCodeBook = ThisWorkbook
With Application.FileSearch
.NewSearch
'Change path to suit
.LookIn = "C:\MyDocuments\TestResults"
.FileType = msoFileTypeExcelWorkbooks
'Optional filter with wildcard
'.Filename = "Book*.xls"
If .Execute > 0 Then 'Workbooks in folder
For lCount = 1 To .FoundFiles.Count 'Loop through all
'Open Workbook x and Set a Workbook variable to it
Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0)

'DO YOUR CODE HERE

wbResults.Close SaveChanges:=False
Next lCount
End If
End With
On Error GoTo 0
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub

要获取工作簿的名称,您需要调整“在此执行您的代码”中的代码以包含 wbResults.Name。如果这是您想要的文件名,请使用 wbResults.FullName,它返回工作簿的名称,包括其在磁盘上的路径作为字符串。

搜索 VBScript variation on the same thing产生许多有用的结果,包括这个脚本:

strPath = "C:\PATH_TO_YOUR_FOLDER"

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder (strPath)

For Each objFile In objFolder.Files

If objFso.GetExtensionName (objFile.Path) = "xls" Then
Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
' Include your code to work with the Excel object here
objWorkbook.Close True 'Save changes
End If

Next

objExcel.Quit

关于excel - 循环遍历指定文件夹中的所有 Excel 文件并从特定单元格中提取数据的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851531/

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