[問題] EXCEL用VBA複製資料到另檔執行效率問題?

看板Office作者 (思想的崛起)時間1年前 (2022/11/24 02:57), 編輯推噓2(2021)
留言23則, 4人參與, 1年前最新討論串1/1
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

11/24 07:33, 1年前 , 1F
應該可以直接=指定value過去
11/24 07:33, 1F

11/24 10:34, 1年前 , 2F
改欄位
11/24 10:34, 2F

11/24 10:34, 1年前 , 3F
用陣列
11/24 10:34, 3F

11/24 10:35, 1年前 , 4F
改資料擺放
11/24 10:35, 4F

11/24 10:35, 1年前 , 5F
4.依個案,隨機應變
11/24 10:35, 5F

11/24 10:35, 1年前 , 6F
5.sql
11/24 10:35, 6F

11/24 13:29, 1年前 , 7F
善用Union把範圍都先選好,一次完成
11/24 13:29, 7F

11/25 02:24, 1年前 , 8F
謝謝大神們的指示 這邊來研究一下 有了指引 就有方向了
11/25 02:24, 8F

11/25 02:32, 1年前 , 9F
請問L大大 可以這樣寫嗎
11/25 02:32, 9F

11/25 02:33, 1年前 , 10F
Workbooks(MV).Worksheets("庫存").Range("A1") =
11/25 02:33, 10F

11/25 02:33, 1年前 , 11F
Workbooks(MC).Worksheets("庫存").Range("A1:C3000").Va
11/25 02:33, 11F

11/25 02:34, 1年前 , 12F
lue 但寫這樣無法運作 請問需要用什麼語法? 謝謝大神
11/25 02:34, 12F

11/25 02:42, 1年前 , 13F
請問N大 可以寫不能執行,需要怎麼改呢? 謝謝N大
11/25 02:42, 13F

11/25 02:42, 1年前 , 14F
Workbooks(MC).Worksheets("庫存").Union(Range("A1:
11/25 02:42, 14F

11/25 02:42, 1年前 , 15F
C3000"), Range("A5:E3000"), Range("G5:G3000"), Range(
11/25 02:42, 15F

11/25 02:42, 1年前 , 16F
"I5:I3000"), Range("M5:P3000"), Range("T5:Y3000")).Co
11/25 02:42, 16F

11/25 02:42, 1年前 , 17F
py
11/25 02:42, 17F

11/25 02:42, 1年前 , 18F
Workbooks(MV).Worksheets("庫存").Union(Range("A1"
11/25 02:42, 18F

11/25 02:43, 1年前 , 19F
), Range("A5"), Range("F5"), Range("G5"), Range("H5")
11/25 02:43, 19F

11/25 02:43, 1年前 , 20F
, Range("L5")).PasteSpecial xlPasteValues
11/25 02:43, 20F

11/25 16:47, 1年前 , 21F
直接assign的方式,前後範圍大小要一樣
11/25 16:47, 21F

11/25 17:26, 1年前 , 22F

11/26 03:34, 1年前 , 23F
實在太感激N大神!用下面這個方法幾乎不用執行等待時間!
11/26 03:34, 23F
文章代碼(AID): #1ZVcqt81 (Office)
文章代碼(AID): #1ZVcqt81 (Office)