簡體   English   中英

將許多Excel工作簿和工作表中的數據導入到單個工作簿/表中

[英]Importing data from many excel workbooks and sheets into a single workbook/table

我有54​​個excel文件,每個文件有3個工作表,每個工作表都有不同數量的數據條目,但是它們以相同的格式列出,我需要使用VBA將這些工作表中的數據導入到單個工作簿中。

有什么方法可以對其編程,以便構建循環以導入數據,而不必為每個循環/工作表輸入每個工作簿名稱? 我想我可以使用call函數,但是我不知道如何使循環代碼獨立於它們所適用的工作簿名稱。

提前謝謝你

米莉

當然,只需將工作簿循環放在一個文件夾中,然后將其打開,然后再將其循環瀏覽。 根據格式上的細微差異,您可能需要在導入時做一些額外的工作。

Sub ImportWorkbooks(destination as workbook, importFolderPath As String)

    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    'Get the folder object associated with the directory
    Set objFolder = objFSO.GetFolder(importFolderPath)

    'Loop through the Files collection and import each workbook
    For Each objFile In objFolder.Files
        Dim source As Workbook
        Set source = Application.Workbooks.Open(objFile.Path, ReadOnly:=True)
        ImportWorkbook source, destination
        wb.Close
        Set wb = Nothing
    Next

    Set objFolder = Nothing
    Set objFile = Nothing
    Set objFSO = Nothing

End Sub

Sub ImportWorkbook(source As Workbook, destination as Workbook)
    Dim sheet As Worksheet

    'Import each worksheet
    For Each sheet In source.Sheets
        ImportWorksheet sheet, destination
    Next sheet
End Sub

Sub ImportWorksheet(sheet As Worksheet, destination as Workbook)

    'Perform your import logic for each sheet here (i.e. Copy from sheet and paste into a 
    'sheet into the provided workbook)

End Sub

基本用法類似於將以下內容導入當前工作簿:

ImportWorkbooks ThisWorkbook, "c:\path\to\folder\containing\workbooks\to\import"

它只需要兩件事:一個帶有工作簿文件名的數組,例如

 dim books
 books = array("book1.xls","book2.xls",....)

然后你的循環代碼看起來像

dim myBk as Workbook
dim bkFile as string
For Each bkFile in books
   myBk = Workbooks.Open(bkFile, ReadOnly)
   myBk.Activate
   'Transfer cells from myBk to target workbook
   target.cells(--).Value = myBk.Sheets("myStuff").Cells(--) 
   ...
Next

我無法幫您解決細節。 您需要為每次遍歷循環更改target.cells參數以移動數據目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM