標題:
[發問]
請教開啟檔案之檔名如何依序貼到分頁
[打印本頁]
作者:
kevin650827
時間:
2015-5-14 16:54
標題:
請教開啟檔案之檔名如何依序貼到分頁
目前巨集已可以將所要開的資料夾內檔案開啟選擇所需的range並貼上新增的分頁 ,但欲加上開啟的檔名要加到 框選的range 前面一欄. 怎麼測試都用不出來....
請教各位先賢, 如何利用迴圈或者那一種寫法可以達到此目的. 煩請指教.謝謝
Workbooks("Get_report.xlsm").Activate '確認巨集檔案是正在執行中
Sheets("Address").Select
For i = 2 To 65536
Sheets("Address").Select
Sheets("Address").Activate
If Cells(i, 1).Value = "" Then Exit For
ToolID = Cells(i, 1).Value
'確認檔案是否存在
sPath$ = "D:\temp\Lot_Report\" & ToolID
sDir$ = Dir(sPath, vbDirectory)
If sDir = "" Then MsgBox " Path " & sDir & " Not Found"
sDir$ = Dir(sPath & "\*.*")
'新增機台頁次
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = ToolID
Do Until sDir = ""
'開檔路徑
Workbooks.OpenText fileName:="D:\temp\Lot_Report\" & ToolID & "\" & sDir, Origin:=xlWindows _
, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
'搜尋關鍵字
Cells.Find(What:="DYNAMIC ", After:=ActiveCell, LookIn:=xlFormulas, lookat:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).Activate
'選擇需要的資料並複製到機台頁面
ActiveCell.Range("A1:J29").Select
Selection.Copy
Workbooks("Get_report.xlsm").Activate
Sheets(ToolID).Select
Sheets(ToolID).Activate
EndRow = ActiveSheet.UsedRange.Rows.Count + 1 '所有使用中的列數+1
Rows(EndRow).PasteSpecial Paste:=xlPasteValues '目前使用中的分頁,的最下方空白列貼上值
Application.DisplayAlerts = False
Workbooks(sDir).Close '關閉另存新檔的檔案
sDir = Dir() '讀取下一個檔案
Loop
Sheets(ToolID).Select
Sheets(ToolID).Activate
Range("A1").Select
Next
作者:
stillfish00
時間:
2015-5-15 19:13
本帖最後由 stillfish00 於 2015-5-15 19:16 編輯
回復
1#
kevin650827
試試看:
Rows(EndRow).PasteSpecial Paste:=xlPasteValues
改為
Range("A" & EndRow).Value = sDir
Range("B" & EndRow).PasteSpecial Paste:=xlPasteValues
程式碼可再優化:
1. 減少Select/Activate
2. 要考慮Find沒找到時該如何處理
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)