看板 Office 關於我們 聯絡資訊
EXCEL 各位大神們好 本碼作用是複製A檔的特定欄位資料貼上到B檔 但執行的時候 是這樣跑的 複製A檔目標1 然後 貼上 到B檔指定欄位 複製A檔目標2 然後 貼上 到B檔指定欄位 複製A檔目標3 然後 貼上 到B檔指定欄位 這樣造成 這段工作的時間 A檔跟B檔都卡頓了 因為A檔持續在工作中,忽然這樣卡頓一下挺痛苦的 請問能不能先直接全部複製A檔要的資料然後再貼到B檔 這樣跑起來看卡頓會不會比較快一點 拜託各位大神指教!! 感激 Sub 複製() Dim MC As String, MV As String MC = "A檔" '設定變數要複製的檔案 MV = "B檔" '設定變數要貼上的檔案 Application.OnTime Now + TimeValue("00:05:00"), "複製" '每5分鐘執行1次 Workbooks(MC).Worksheets("庫存").Range("A1:C3000").Copy Workbooks(MV).Worksheets("庫存").Range("A1").PasteSpecial xlPasteValues '只貼值不含公式和格式 Workbooks(MC).Worksheets(MC).Range("A5:E3000").Copy Workbooks(MV).Worksheets("月").Range("A5").PasteSpecial xlPasteValues Workbooks(MC).Worksheets(MC).Range("G5:G3000").Copy Workbooks(MV).Worksheets("月").Range("F5").PasteSpecial xlPasteValues Workbooks(MC).Worksheets(MC).Range("I5:I3000").Copy Workbooks(MV).Worksheets("月").Range("G5").PasteSpecial xlPasteValues Workbooks(MC).Worksheets(MC).Range("M5:P3000").Copy Workbooks(MV).Worksheets("月").Range("H5").PasteSpecial xlPasteValues Workbooks(MC).Worksheets(MC).Range("T5:Y3000").Copy Workbooks(MV).Worksheets("月").Range("L5").PasteSpecial xlPasteValues End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.15.40 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1669229879.A.201.html
lecheck: 應該可以直接=指定value過去 11/24 07:33
waiter337: 改欄位 11/24 10:34
waiter337: 用陣列 11/24 10:34
waiter337: 改資料擺放 11/24 10:35
waiter337: 4.依個案,隨機應變 11/24 10:35
waiter337: 5.sql 11/24 10:35
newacc: 善用Union把範圍都先選好,一次完成 11/24 13:29
ilf0121: 謝謝大神們的指示 這邊來研究一下 有了指引 就有方向了 11/25 02:24
ilf0121: 請問L大大 可以這樣寫嗎 11/25 02:32
ilf0121: Workbooks(MV).Worksheets("庫存").Range("A1") = 11/25 02:33
ilf0121: Workbooks(MC).Worksheets("庫存").Range("A1:C3000").Va 11/25 02:33
ilf0121: lue 但寫這樣無法運作 請問需要用什麼語法? 謝謝大神 11/25 02:34
ilf0121: 請問N大 可以寫不能執行,需要怎麼改呢? 謝謝N大 11/25 02:42
ilf0121: Workbooks(MC).Worksheets("庫存").Union(Range("A1: 11/25 02:42
ilf0121: C3000"), Range("A5:E3000"), Range("G5:G3000"), Range( 11/25 02:42
ilf0121: "I5:I3000"), Range("M5:P3000"), Range("T5:Y3000")).Co 11/25 02:42
ilf0121: py 11/25 02:42
ilf0121: Workbooks(MV).Worksheets("庫存").Union(Range("A1" 11/25 02:42
ilf0121: ), Range("A5"), Range("F5"), Range("G5"), Range("H5") 11/25 02:43
ilf0121: , Range("L5")).PasteSpecial xlPasteValues 11/25 02:43
newacc: 直接assign的方式,前後範圍大小要一樣 11/25 16:47
newacc: https://i.imgur.com/92GzWgX.png 11/25 17:26
ilf0121: 實在太感激N大神!用下面這個方法幾乎不用執行等待時間! 11/26 03:34
ljuber: Newacc的寫法很讚 留下來未來有需要用到 11/28 08:23