作者ilf0121 (思想的崛起)
看板Office
标题[问题] EXCEL用VBA复制资料到另档执行效率问题?
时间Thu Nov 24 02:57:57 2022
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://webptt.com/cn.aspx?n=bbs/Office/M.1669229879.A.201.html
1F:推 lecheck: 应该可以直接=指定value过去 11/24 07:33
2F:推 waiter337: 改栏位 11/24 10:34
3F:→ waiter337: 用阵列 11/24 10:34
4F:→ waiter337: 改资料摆放 11/24 10:35
5F:→ waiter337: 4.依个案,随机应变 11/24 10:35
6F:→ waiter337: 5.sql 11/24 10:35
7F:→ newacc: 善用Union把范围都先选好,一次完成 11/24 13:29
8F:→ ilf0121: 谢谢大神们的指示 这边来研究一下 有了指引 就有方向了 11/25 02:24
9F:→ ilf0121: 请问L大大 可以这样写吗 11/25 02:32
10F:→ ilf0121: Workbooks(MV).Worksheets("库存").Range("A1") = 11/25 02:33
11F:→ ilf0121: Workbooks(MC).Worksheets("库存").Range("A1:C3000").Va 11/25 02:33
12F:→ ilf0121: lue 但写这样无法运作 请问需要用什麽语法? 谢谢大神 11/25 02:34
13F:→ ilf0121: 请问N大 可以写不能执行,需要怎麽改呢? 谢谢N大 11/25 02:42
14F:→ ilf0121: Workbooks(MC).Worksheets("库存").Union(Range("A1: 11/25 02:42
15F:→ ilf0121: C3000"), Range("A5:E3000"), Range("G5:G3000"), Range( 11/25 02:42
16F:→ ilf0121: "I5:I3000"), Range("M5:P3000"), Range("T5:Y3000")).Co 11/25 02:42
17F:→ ilf0121: py 11/25 02:42
18F:→ ilf0121: Workbooks(MV).Worksheets("库存").Union(Range("A1" 11/25 02:42
19F:→ ilf0121: ), Range("A5"), Range("F5"), Range("G5"), Range("H5") 11/25 02:43
20F:→ ilf0121: , Range("L5")).PasteSpecial xlPasteValues 11/25 02:43
21F:→ newacc: 直接assign的方式,前後范围大小要一样 11/25 16:47
23F:→ ilf0121: 实在太感激N大神!用下面这个方法几乎不用执行等待时间! 11/26 03:34
24F:推 ljuber: Newacc的写法很赞 留下来未来有需要用到 11/28 08:23