我希望将来自许多工作簿的导入/复制数据转换为摘要工作簿。工作簿安排在不同的子文件夹中,即
C:\data1\results_2001.xlm
C:\data2\results_2002.xlm
C:\data3\results_2003.xlm
名称相似但略有不同以区分它们。目前,我单独导入文件,我想自动化该过程。结果文件(上面)是其他excel文件,因此我无法按文件类型定位它们。
如何通过部分文件名导入这些文件?
答案 0 :(得分:1)
一个选项是为Excel工作表创建一个文件路径数组,然后遍历数组并将所需数据放入摘要表。
Sub CreateSummary()
Dim wkbs() As Variant, wkb As Integer, owb As Workbook
wkbs = Array("C:\data1\results_2001.xlm", "C:\data2\results_2002.xlm", "C:\data3\results_2003.xlm")
For wkb = 0 To UBound(wkbs)
Set owb = Application.Workbooks.Open(wkbs(wkb)) //Open each workbook
With owb
//Get the data you want into your summary workbook
.Close
End With
Next wkb
End Sub
答案 1 :(得分:0)
你可以用任何语言来做,但对于那些提出这个问题的人来说,我认为这会有点挑战,所以这就是你需要做的事情:
这样的事情,我相信你可以使用VBA轻松实现这一目标,看看here
从字面上看,它会是这样的,请注意这不是有效的代码,只是我写下来帮助你解决这个问题:
function loopthepath (string pathtoloop)
foreach(dirItem item in pathtoloop.getdirItem)
{
if (item is folder)
{
loopthepath(pathtoloop + item)
}
else
{
if (item fits mydescription)
{
load the content to the summary
}
}
}
答案 2 :(得分:0)
另一种方式,特别是如果只进行一次操作:进入Cmd.exe,为你正在寻找的文件做一个Dir,并将其发送到文本文件(例如dir c:\results_*.xlm /s /b > c:\myList.txt
之类的东西) 。然后将文本文件导入工作表,逐步遍历列表中的每个单元格,依次打开每个工作簿。