ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2381|回复: 3

[求助] 自己录制一个宏,运行很慢,什么原因

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-7 10:15 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我自己录制了一个宏,以后要在周一到周五,每天9:00——16:00期间,大约5-10分钟计算一次,现在运算很慢(60秒以上),什么原因,如何提高运算速度
代码如下:

Sub 录制计算()
'
' 录制计算 Macro
' 宏由 微软中国 录制,时间: 2018/4/7
'

'
    Columns("E:E").Select
    Selection.Replace What:="开仓", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="平仓", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="换手", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="双平", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="双开", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="空换", Replacement:="-1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="多平", Replacement:="-1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="空平", Replacement:="1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="多换", Replacement:="1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="多开", Replacement:="2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="空开", Replacement:="-2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R5C3:RC[-3],R5C5:RC[-1])"
    Range("F5").Select
    Selection.AutoFill Destination:=Range("F5:F10199")
    Range("F5:F10199").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H5").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=LOOKUP(2,1/(RC[-1]=R5C1:R15000C1),R5C6:R15000C6)"
    Range("H5").Select
    Selection.AutoFill Destination:=Range("H5:H248")
    Range("H5:H248").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("I5").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=AVERAGE(R5C[-1]:RC[-1])"
    Range("I5").Select
    Selection.AutoFill Destination:=Range("I5:I12"), Type:=xlFillDefault
    Range("I5:I12").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub


录制计算.zip

187.68 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-7 10:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R5C3:RC[-3],R5C5:RC[-1])"
    Range("F5").Select
    Selection.AutoFill Destination:=Range("F5:F10199")
是上面的命令运算数据太大的缘故吗?有些数据可能超过20000行,有什么好的方法提高运算速度,谢谢

TA的精华主题

TA的得分主题

发表于 2018-4-7 10:59 | 显示全部楼层
把你的意图写明白,录制的宏80%的代码都没有用,没有人看这些东西。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-7 11:08 | 显示全部楼层
xyxcc177 发表于 2018-4-7 10:59
把你的意图写明白,录制的宏80%的代码都没有用,没有人看这些东西。

就是这个宏运算太慢,100秒以上,如何缩短到10秒左右
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-17 12:36 , Processed in 0.032530 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表