gpt4 book ai didi

vba - Excel vba : combine multiple files in one sheet

转载 作者:行者123 更新时间:2023-12-04 19:56:05 25 4
gpt4 key购买 nike

我的一个文件夹中有 100 多个文件。每个文件有 3 个列表,但只有 1 个包含数据的列表。我需要从每个文件中获取该数据并将其合并到 1 个列表上的单个文件中。我为它编写了一个子程序,但我不确定如何仅选择所需的范围(它因文件而异) - 就像您在键盘上使用 Ctrl + Shift + left arrow + down arrow 执行的方式一样。 。我应该如何将其粘贴到结果工作簿中之前粘贴的数据之后的第一个空闲行?

Sub combine()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual

Dim ExcelApp As Object
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = False
ExcelApp.ScreenUpdating = False
ExcelApp.DisplayAlerts = False
ExcelApp.EnableEvents = False

'**VARIABLES**
Dim folderPath As String
folderPath = "Y:\plan_graphs\final\mich_alco_test\files\"

'COUNT THE FILES
Dim totalFiles As Long
totalFiles = 0
Dim fileTitle As String
fileTitle = Dir(folderPath & "*.xl??")
Do While fileTitle <> ""
totalFiles = totalFiles + 1
fileTitle = Dir()
Loop

'OPENING FILES
Dim resultWorkbook As Workbook
Dim dataWorkbook As Workbook
Set resultWorkbook = ExcelApp.Application.Workbooks.Open("Y:\plan_graphs\final\mich_alco_test\result.xlsx")


fileTitle = Dir(folderPath & "*.xl??")

'FOR EACH FILE
Do While fileTitle <> ""
Set dataWorkbook = ExcelApp.Application.Workbooks.Open(folderPath & fileTitle)
dataWorkbook.Worksheets("List1").Range("A1").Select
dataWorkbook.Worksheets("List1").Selection.CurrentRegion.Select


`resultWorkbook.Range
fileTitle = Dir()
Loop

ExcelApp.Quit
Set ExcelApp = Nothing
End Sub

最佳答案

我可能误解了这个问题,不幸的是我无法发表评论。如果我对这个问题理解错误,我会删除。

but I'm not sure how to go around selecting only the range needed

这表明您拥有动态数据量并希望使用 Range获取选择。

假设您知道所述数据所在的列位置(在这种情况下,我的列表从 B2 开始,我们知道它在哪里结束。您可以使用 Range 动态选择所有数据:

Dim rcell As Range
Dim rng As Range

Set rng = ActiveSheet.Range("B2", Range("B2").End(xlDown))

For Each rcell In rng.Cells
Debug.Print rcell.Value
Next rcell

End Sub

首先我们定义一个Range变量并将其分配给从 B2 开始并使用 .End(xlDown) 的范围我们可以选择以最后一个条目结束的范围。

进一步阅读.End()请参阅here.

希望这有帮助。

关于vba - Excel vba : combine multiple files in one sheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320848/

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