2016-08-15 77 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

好点,谢谢。 –

相关问题