Excel宏打开excel工作簿的文件夹并复制1个单元格

时间:2015-08-19 15:06:14

标签: excel vba excel-vba

我有一个.xlsx文件夹,每个文件的布局都相同。

我需要在excel中编写一个宏来依次打开每个文件(100多个文件) 然后从单个单元格中获取数据(名称),并将其放入新的Excel工作表中,移到下一个工作表并将其插入到最后一个工作表之下等。

基本上给我一个来自数据而非文件名的名单列表

1 个答案:

答案 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