【问题标题】:Loop through workbooks combining path and name循环通过结合路径和名称的工作簿
【发布时间】:2019-01-07 14:15:12
【问题描述】:

一年中的每个星期我都有一本工作簿。 我有这些工作簿好多年了。 我想从每个工作簿和每个工作表中收集数据。 从每张工作表中收集数据已经可以正常工作了。

结构是这样的;

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

我正在努力循环浏览工作簿。 床单已经解决了。 我想结合年份和星期,我使用工作簿路径来做到这一点。

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 

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

提前致谢。

【问题讨论】:

  • 不适用于普通 Excel。我担心你需要 VBA。
  • 听起来你已经玩过一些代码了。请展示您尝试过的内容 - 从那里开始要容易得多。除此之外:您是否研究过 VBA 中的字符串连接?在我看来,您也许可以在那里找到答案。
  • 嘿@Inarion 我刚刚添加了我在 VBA 中使用整数方法的代码。

标签: vba excel loops directory


【解决方案1】:

这是一个如何循环几年和几周来生成路径的示例:

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

【讨论】:

  • Peh,非常感谢。它正在工作。在找到正确的 .xlsx 文件后,我对剩余的代码应用了相同的方法。在这里学习很棒。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多