- 帖子
- 192
- 主題
- 15
- 精華
- 0
- 積分
- 194
- 點名
- 0
- 作業系統
- windows
- 軟體版本
- office2010
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2016-9-22
- 最後登錄
- 2020-8-28
 
|
3#
發表於 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
複製代碼 |
|