在excel中使用VBA从具有多个文件名的已关闭工作簿中获取数据

时间:2017-03-18 16:32:44

标签: excel vba

我有一个工作簿,在一列中有一个excel文件名列表,我需要使用这些文件名让宏从列表中每个文件的一个单元格中获取数据。我该从哪里开始?对不起这个愚蠢的问题。 workbook with data sheet 我想从名为K列的工作簿中获取数据,工作表名称来自L列,并且始终是单元格A13。并将该值放在M列的正确行中。

1 个答案:

答案 0 :(得分:0)

这就是你要做的事情:

  1. 遍历每个名​​称(假设列表范围为A1:A5)
  2. 打开该工作簿。
  3. 从单元格中获取值
  4. 将该值粘贴到主工作簿
  5. 关闭工作簿并转到下一个工作簿
  6. 这是你这样做的:

    Sub CopyFromWorkbooks()
    Dim path As String
        path = "THE PATH WERE THOSE WORKBOOKS ARE SAVED (Eg: "C:\Users\YOU\Documents")"
                For Each cell In ThisWorkbook.Sheets("YOUR_SHEET_NAME").Range("A1:A5")
                'Open the workbook
                Workbooks.Open Filename:=path & "\" & cell.Value  'adding workbook name and path to get full workbook path
    
                'Copy cell value to this workbook
                Workbooks(cell.Value).Sheets("YOUR_SHEET_NAME").Range("THE RANGE TO COPY").Copy
    
                'Paste copied value in this workbook
                ThisWorkbook.Sheets("YOUR_SHEET_NAME").Range("THE RANGE TO PASTE").PasteSpecial Paste:=xlPasteValues
    
                'Close Workbook
                 Workbooks(cell.Value).Close True
    
                 Next cell
    End Sub
    

    如果您需要帮助,只需回写,此代码将始终将复制的数据粘贴到同一个单元格上;)