【发布时间】:2018-11-14 02:56:41
【问题描述】:
我有一个将文件夹路径粘贴到列表中的用户表单。然后我有下面的代码应该循环遍历该列表并列出所有子文件夹(然后我可能会有另一个代码循环遍历子文件夹以获取 excel 工作簿)。
我知道这很不优雅,因为最终我想要的是一次查看我的路径列表,通过每个文件夹和子文件夹查找并列出 excel 文件。但是有 a question 这样的,它被删除了。然后这个问题被提到to a different q&a,我不明白,这与单个文件名有关,在单个单元格中输入,而不是范围,也不是路径。我说俄语,他的一些代码在里面,但仍然不太明白他的代码是什么意思和指的是什么,当我尝试它时,它一直告诉遇见“GetData”未定义?所以我试图问一个不同但类似的问题,希望有人能向我解释我需要做什么,因为我已经尽我所能,并试图从这篇文章的链接中调整这两个代码以及许多其他人。我有几个模块的代码无法正常工作,我最接近的是下面的代码。在这一点上,我只想找到一种从路径列表中列出 excel 文件名的方法。
Option Explicit
Dim i As Long, j As Long
Dim searchfolders As Variant
Dim FileSystemObject
Sub ListOfFolders77()
Dim LookInTheFolder As String
'Dim ws As Worksheet: Set ws = Sheets("Output4")
Dim ws2 As Worksheet: Set ws2 = Sheets("Output3")
Dim rng As Range: Set rng = ws2.Range("A1:A" & Rows.Count).End(xlUp)
Dim mypath As Range
'Dim Region As Range: Set Region = ws.Range("A2")
'Dim district As Range: Set district = ws.Range("B2")
'Dim city As Range: Set city = ws.Range("C2")
'Dim atlas As Range: Set atlas = ws.Range("D2")
i = 1
For Each mypath In rng
LookInTheFolder = mypath.Value
Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
For Each searchfolders In FileSystemObject.GetFolder(LookInTheFolder).subfolders
Sheets("Subfolders").Cells(i, 1) = searchfolders
i = i + 1
SearchWithin searchfolders
Next searchfolders
Next mypath
End Sub
Sub SearchWithin(searchfolders)
On Error GoTo exits
For Each searchfolders In FileSystemObject.GetFolder(searchfolders).subfolders
j = UBound(Split(searchfolders, "\"))
Cells(i, j) = searchfolders
i = i + 1
SearchWithin searchfolders
Next searchfolders
exits:
End Sub
理想情况下,我想获取文件夹和子文件夹中的所有 excel 文件,并将第一张表上的数据复制粘贴到一个长列表中,但我仍在第 1 步。我发布了更详细的解释 here上周,尚未收到任何反馈或潜在提示。
如果这没有意义或看起来有点危险,我深表歉意。我是在 excel VBA 中自学的,并且正在努力理解我所需要的是否可能。我尝试使用 Directory,但在 for each 循环中放置目录时收效甚微。 我还尝试使用一个数组,当它列出我整个计算机中的所有文件夹和文件时,它几乎被计算机崩溃了。
【问题讨论】:
-
你有什么问题?会不会是“给定一个文件夹路径,在该文件夹和所有子文件夹中找到所有 Excel 文档 (
.xlsx,.xls,.xlsm)”?之后,打开每个文件并添加到主表应该相对容易 - 这是一个常见的请求,并且有无数的 SO 问题和一般的互联网搜索应该有助于这部分) -
@BruceWayne 第一个“给定文件夹路径,查找该文件夹中的所有 Excel 文档 (.xlsx,.xls,.xlsm) 以及所有子文件夹”但也“给定文件夹路径列表”。抱歉,我倾向于包含太多信息。我将在未来的 stackoverflow 问题中处理它