【发布时间】:2015-02-20 12:53:53
【问题描述】:
我需要修改多个 Excel 文件中的列标题。这些文件位于我要循环遍历的文件夹下两级的子文件夹中(每个文件夹中有 28 个 .xlsx 文件,每个期间一个文件夹)。
文件结构为: "c:\...文件路径...\Period *\Daily Attributions\*.xlsx"
我已经设法得到一些代码来循环遍历文件夹中的每个文件,但我需要帮助来为每个文件夹中的所有文件重复相同的循环。
这是我目前所拥有的。
Sub FirstLast()
'
' FirstLast Macro
'
Dim sPath As String
Dim sFile As String
Dim wb As Workbook
sPath = "C:\...filepath...\Period 1\Daily Attributions\"
sFile = Dir(sPath & "*.xlsx")
Do While sFile <> ""
Set wb = Workbooks.Open(sPath & sFile, UpdateLinks:=False)
Range("E1").Select
ActiveCell.FormulaR1C1 = "FirstLast"
ActiveWorkbook.Save
ActiveWindow.Close
sFile = Dir
Loop
End Sub
【问题讨论】:
-
使用与
dir()相同的逻辑创建一个存储在periods目录中的集合,然后使用For each loop使用上面相同的代码运行该集合!你离答案不远了。 -
@brettdj 这可能是我对 vba 的理解很差(我对它很陌生),但我已经看到了答案,你建议这是...的副本,我想那是指遍历目录中的文件。我的问题说明我有一个解决方案,但我还需要遍历不同的文件夹。
-
@HalBaggot Aploges,你是对的。这个链接给出了子文件夹,stackoverflow.com/questions/9827715/get-list-of-subdirs-in-vba/…
-
谢谢,我没有看到这个问题,因为它只使用
word标签。 -
@brettdj 你有没有机会删除或修改去重复标记?除非您专门搜索与单词相关的标签,否则您将找不到链接到的答案。