vba - 循环遍历结合路径和名称的工作簿

标签 vba excel loops directory

我一年中的每一周都有一本工作簿。 我已经保存这些练习册很多年了。 我想从每个工作簿和每个工作表中收集数据。 从每张表中收集数据已经工作正常。

结构是这样的;

  • 年份 - 不同文件夹
  • 周 - 不同的工作簿
  • 日 - 不同 工作表

我正在努力循环浏览工作簿。 床单已经解决了。 我想合并年份和周,并且我使用工作簿路径来执行此操作。

Workbooks.Open ("L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2017\Aanvragen ME week 01.xlsx")

我已经尝试使用整数来循环多个文件,这似乎不起作用。我还尝试设置一个数组,但此时我似乎无法组合工作簿路径 - (我使用了区分年份的路径)。

Dim i As Integer

For i = 1 To 9
Application.ScreenUpdating = False

    Workbooks.Open ("L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2017\Aanvragen ME Week 0i.xlsx")
    Windows("Aanvragen ME Week 0i.xlsx").Activate
    Sheets("Vrijdag 1").Select
    Range("A66:I77").Select
    Selection.Copy
    Windows("Book5").Activate

在两者之间编写代码,查找附加数据

 Sheets("PLANT 1 & 2").Select
    Range("C3").Select
    Selection.End(xlDown).Offset(0, -1).Select
    Selection = "Week0i"
    Range("C3").Select
   Selection.End(xlDown).Offset(0, -1).Select
   Range(Selection, Selection.End(xlUp)).Select
    Selection = "Week0i"

    Windows("Aanvragen ME Week 0i.xlsx").Activate
    ActiveWorkbook.Application.CutCopyMode = False
    ActiveWorkbook.Close SaveChanges:=False

Next i 

知道如何解决这个问题吗?

提前致谢。

最佳答案

以下是如何循环遍历年和周来生成路径的示例:

Sub Test()
    Dim iYear As Long
    Dim iWeek As Long

    For iYear = 2015 To 2017
        For iWeek = 1 To 52
            Debug.Print "L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME " & iYear & "\Aanvragen ME week " & Format(iWeek, "00") & ".xlsx"
            'add your code here
        Next iWeek
    Next iYear
End Sub

您可能还想阅读:How to avoid using Select in Excel VBA .

请注意,我使用 Format(iWeek, "00") 来获取两位数格式的周数。

结果会是这样的:

L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 01.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 02.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 03.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 04.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 05.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 06.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 07.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 08.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 09.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 10.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 11.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2015\Aanvragen ME week 12.xlsx
…
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2017\Aanvragen ME week 50.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2017\Aanvragen ME week 51.xlsx
L:\Chemical_Mfg\Aanvragen CA\Aanvragen ME 2017\Aanvragen ME week 52.xlsx

关于vba - 循环遍历结合路径和名称的工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51609040/

相关文章:

excel - 在桌面上将 Excel 工作表存储为 PDF

excel - Vba 将 .Vlookup 更改为 .vlookup

c# - "Column out of Range"填充 Excel 工作表时出错

javascript - 尝试将过滤器应用于充满对象的嵌套数组

linux - 文本文件中的单引号完整路径文件无法执行 for 循环处理 mv : cannot stat . .. 没有这样的文件或目录

c++ - 循环条件中逻辑运算符的使用

vba - 宏分配按钮在 Excel 中不起作用

.net - 用自定义 VBA 类包装 .Net ArrayList 获取迭代器

c# - 通过 WebApi 调用从页面下载 excel 文件

vba - Excel XY 图表(散点图)数据标签无重叠