|
本帖最后由 wuxianyu86 于 2018-10-11 15:49 编辑
正好今天有空 学习了18楼 LYM123 的代码 ,用dir获取文件名称修改了一下收集数据,
个人感觉所有数据放到一张表里面更容易分析,通过筛选,一样能看到不同项目的数据,没必要分开。
Sub 收集数据2()
On Error Resume Next
n = 2
ReDim tempdata(2 To 5000, 1 To 4)
datapth = ""
datapth = (CreateObject("Shell.Application").BrowseForFolder(0, "请选择源文件夹", 0, "").Self.Path & "\")
t = Timer
If datapth = "" Then Exit Sub
fn = Dir(datapth & "*.xls?") '获取文件内的文件名
[A1:D1] = Array("日期", "项目", "测值", "源数据文件名")
For i = 2 To 10000
If fn <> "" Then
Path = datapth & fn '源文件路径
Set datawb = GetObject(Path)
mylastrow = Range("A65535").End(xlUp).Row
datalastrow = datawb.Sheets(1).Range("a65535").End(xlUp).Row
For j = 2 To datalastrow
tempdata(n, 1) = Format(datawb.Sheets(1).Cells(1, 1), "YYYY-MM-DD") '日期
tempdata(n, 2) = datawb.Sheets(1).Cells(j, 1) '测量项目
tempdata(n, 3) = datawb.Sheets(1).Cells(j, 2) '测值
tempdata(n, 4) = datawb.Name '文件名
n = n + 1
Next j
datawb.Close '关闭文件
fn = Dir '获取下一个文件名
Else
Exit For
End If
Next i
Range("A2:D5000") = tempdata
MsgBox Timer - t & "秒完成"
End Sub
|
|