|
本帖最后由 sure 于 2016-5-3 13:53 编辑
各位老师好:
我有一系列的测试数据,都放在一个文件夹下,我希望通过选取文件夹,将该文件夹下所有文件导入到一个excel里面进行汇总,每个文件的末尾是测试的序列号,譬如98865-1.00-002A-1.csv,ID是1; 98865-1.00-002A-8.csv,ID 是8,每个excel提取前2列;
demo文件是提取后的模板,source是数据源,
demo的“”summary”sheet的Board name需要提取,就是excel的文件名:98865-1.00-002A,同一文件夹下的所有Board name是一致的,只是测试的序列号不同;
"raw"sheet就是提取的所有excel的内容,title是:时间+测试的序列号。
还有可能需要提取时间不能太长,所以读取文件的脚本的效率要高一点。
- Sub 显示选定文件夹文件() '调用Windows文件浏览器打开文件
- Range("A:A").ClearContents '清除
- Dim fso, fl, fp
- Dim wb As Workbook
- Set fso = CreateObject("Scripting.FileSystemObject")
- fp = CreateObject("Shell.Application").BrowseForFolder(0, "请选择文件夹", 0, "").Self.Path & ""
- With Sheets("RAW")
- .Cells.Clear: c = 1
- For Each fl In fso.getfolder(fp).Files
- If InStr(UCase(fl.Name), "CSV") > 0 Then
- n = n + 1
- xrr = Split(fl.Name, "-")
- xh = Val(xrr(UBound(xrr))) '序号
- If n = 1 Then
- If [b1] = "" Then r = 1 Else r = [b65536].End(3).Row + 1
- Cells(r, 2) = Replace(fl.Name, "-" & xh & ".csv", "") 'Board
- End If
- Set wb = Workbooks.Open(fl)
- wb.Worksheets(1).Columns("a:b").Copy .Cells(1, c)
- .Cells(1, c + 1) = xh
- c = c + 2
- wb.Close False
- End If
- Next
- End With
- End Sub
复制代码
|
|