我有一个.xlsx文件夹,每个文件的布局都相同。
我需要在excel中编写一个宏来依次打开每个文件(100多个文件) 然后从单个单元格中获取数据(名称),并将其放入新的Excel工作表中,移到下一个工作表并将其插入到最后一个工作表之下等。
基本上给我一个来自数据而非文件名的名单列表
答案 0 :(得分:1)
这里(几乎)正是你想要做的。下次在你问之前做一些谷歌搜索! :)
http://www.excel-easy.com/vba/examples/files-in-a-directory.html
粗略代码不确定是否可行: 但这里是我发送给你的示例中需要修改的基本概念。如果你再看一下这个例子,它会做你需要的一切,然后再做一些。由于您对所有工作表不感兴趣,因此您无需遍历工作簿中的所有工作表。您可以打开它,阅读您感兴趣的细胞,然后关闭它。 Do While循环将对目录中的每个Excel文件执行此操作。再次!请在使用前相应地修改此示例。
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Application.ScreenUpdating = False
directory = "c:\test\"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
i = i + 1
Workbooks.Open (directory & fileName)
Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, 1).Value = Workbooks(fileName).Worksheets(1).Cells(x, y) <-- whatever your cell of interest is
Workbooks(fileName).Close
fileName = Dir()
Loop
Application.ScreenUpdating = True