1
我正在与某个必须在excel文件中标识某些变量的人一起工作。目前,我正在使用的人有大量的文件夹和子文件夹,其中包含Excel文档。他使用的VBA代码在一个文件夹中查找子文件夹,然后返回该路径,然后创建超链接到子文件夹(这不是下面的VBA代码的一部分)并查看所有的excel文件,无论主文件夹内的子文件夹的级别如何。使用VBA从Excel文件中检索列标题
下面的代码:
Sub GetFolders()
Dim path As String
Dim folder As String
Dim row As Integer
path = "your directory here"
folder = Dir(path, vbDirectory)
row = 1
Do While folder <> ""
If (GetAttr(path & folder) And vbDirectory) = vbDirectory Then
Cells(row, 1) = path & folder
row = row + 1
End If
folder = Dir()
Loop
End Sub
这是伟大的,但我知道必须有一个更好的办法。我该如何处理这段代码,才能返回文件夹中找到的任何Excel文件的COLUMN HEADERS A)或文件夹中包含的子文件夹内的B)。我希望将这些数据返回到Excel电子表格中,以便不需要打开100个Excel文档,而只需要打开这个文档,然后我们就可以识别出需要进一步调查并忽略其余部分的任何Excel电子表格。
扩展您所拥有的循环并打开找到的每个工作簿都是相对直接的。您必须做出的决定是a)该工作簿中的列标题在哪里 - 只有一张纸,多张纸,所有纸张? b)这些表中的每一页上的标题是哪一行 - 第1行还是其他行?当然可以...搜索这些想法并将一些代码放在一起,然后回过头来问一些你所做的事情。 – PeterT
它听起来像你可能会更好地把它变成一个Access数据库。这不是Excel真正为其构建的类型。这就是说,找出为什么你必须通过所有的检索这些特定的标题可能会帮助我们找到更好的解决方案。例如:如果文件之间的列不相同,是否有可以从文件夹位置找到的模式?列可以标准化并在一些文件中保留空白吗? – TesseractE
使用Excel 2010或更高版本,您可以使用Power Query查询文件夹中excel文件的列标题,而无需打开它们 – Slai