2016-08-15 85 views
0

我放棄了。我搜索過,我曾經搜索過,所見過的任何大量令人困惑的三頁代碼段都經歷過,坦率地說,雖然我確信它們都是很好的解決方案,但代碼只是在我之外。從文件夾中的所有工作簿導入數據

我有一堆數據表,結構完全相同,但有很多不同的數據。它們都被存儲在同一個目錄中,我試圖讓一個宏在其中循環。

這是我的原始嘗試(其中RunImport是複製所有這些數據字段的功能)。它不起作用。

Private Sub But_BatchRun_Click() 
Dim sImpFolder As String, wb As Workbook 

sImpFolder = GetFolder 

For Each wb In sImpFolder 
    call runimport (wb) 
Next wb 

End Sub 

有任何容易和短的方式來做到這一點,不涉及八頁的代碼?

+1

你爲什麼不只是使用此解決方案,並探討了'.xls'每個文件(或任何其他relevante)擴展:http://stackoverflow.com/questions/10380312/loop-through-files -in-a-folder-using-vba – Ralph

+0

Ralph寫道,它的代碼少於10行,也不要忘記將你的類型錯誤修復爲'調用RunImport(wb)' –

+0

你檢查過微軟的VBA材料嗎?他們在5行代碼中完成。 https://support.microsoft.com/zh-cn/kb/139724 – Ambie

回答

1

是否使用FileSystemObject或Dir搜索;你仍然需要打開文件。

Sub ProcessXLFiles() 
    Const FolderPath = "C:\stackoverfow\Sample Data File\*.xl*" 
    Dim FileName As String 
    Dim wb As Workbook 
    FileName = Dir(FolderPath) 

    Do While Len(FileName) > 0 
     Set wb = Workbooks.Open(FileName) 
     callrunimport FileName 
     FileName = Dir 
    Loop 

End Sub 
+0

好點,謝謝。 –

相關問題