標題:
[發問]
如何從資料夾的Excel讀檔寫檔
[打印本頁]
作者:
starbox520
時間:
2016-12-19 09:59
標題:
如何從資料夾的Excel讀檔寫檔
資料夾裡每日都會新增今日的數據
分別為第8欄跟第19欄
如果我得資料夾路徑是C:\Users\Rawdata
要把資料夾內的檔案全部跑一遍
分別取第8欄跟第19欄
附檔有1個月的資料
也有附上我合併起來的格式<跑完的結果>
我只有取14天的資料
請問該如何做呢
因為我有一年的資料要跑= " =
[attach]26122[/attach]
[attach]26123[/attach]
作者:
Hsieh
時間:
2016-12-19 16:36
回復
1#
starbox520
Sub inputraw()
ActiveSheet.UsedRange.Offset(1).ClearContents
Application.ScreenUpdating = False
fd = "C:\Users\Rawdata\" 'rawdata檔案路徑
fs = Dir(fd & "*")
r = 2
Do Until fs = ""
With Workbooks.Open(fd & fs)
ActiveSheet.Cells(r, 1).Resize(, 21) = .ActiveSheet.Cells(8, 1).Resize(, 21).Value
ActiveSheet.Cells(r, 22).Resize(, 20) = .ActiveSheet.Cells(19, 2).Resize(, 20).Value
.Close 0
End With
fs = Dir
r = r + 1
Loop
Application.ScreenUpdating = True
End Sub
複製代碼
作者:
starbox520
時間:
2016-12-19 21:59
回復
2#
Hsieh
回版大
我是用這種方法可是有侷限在還要創資料夾
還是您的好用哈哈
Sub test()
Range("B2").Select
ActiveWindow.FreezePanes = True
Dim p, f, arr1, arr2, arr3, arr4, dic
Application.ScreenUpdating = False
Set dic = CreateObject("scripting.dictionary")
ActiveSheet.Range("B2:AO65535").ClearContents
For j = 2 To ActiveSheet.Range("A1").CurrentRegion.Rows.Count
dic(Cells(j, 1).Value) = j
Next
p = ThisWorkbook.Path & "\rawdata\"
f = Dir(p & "*.xls")
Do While Len(f)
If f <> "" Then
With GetObject(p & f)
arr1 = .Sheets(2).Range("A2:A8")
arr2 = .Sheets(2).Range("B2:U8")
arr3 = .Sheets(2).Range("A13:A19")
arr4 = .Sheets(2).Range("B13:U19")
.Close SaveChanges:=False
End With
End If
With ThisWorkbook.ActiveSheet
For i = 1 To 7
If dic(arr1(i, 1)) <> "" Then
.Range("B" & dic(arr1(i, 1))).Resize(1, UBound(arr2, 2)).Value = WorksheetFunction.Index(arr2, i, 0)
'h1 = dic(arr2(i, 1))
End If
If dic(arr3(i, 1)) <> "" Then
.Range("v" & dic(arr3(i, 1))).Resize(1, UBound(arr4, 2)).Value = WorksheetFunction.Index(arr4, i, 0)
End If
Next
End With
f = Dir
Loop
Application.ScreenUpdating = True
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)