Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1080|回复: 6

[已解决]运行中自动更替指定区域,10秒后自动更替下一序号

[复制链接]
发表于 2021-11-24 22:30 | 显示全部楼层 |阅读模式
360截图20211124221720887.jpg
运行中自动更替指定区域,10秒后自动更替下一序号
这是我把区域拆开,不然直接是没法运行,亿个单元格是没法运行,试了没显示。
所以拆开来,靠延迟10秒后,不想填276个宏,有点多了。
拜托了,谢谢
更替序号计算.rar (464.52 KB, 下载次数: 20)
发表于 2021-11-25 21:26 | 显示全部楼层
可以用数组循环,不用写延迟10秒的语句,处理完一次自然会进入下一次的处理,但是我没法做,因为运行你的代码太费时间。我不明白的是,我记得给你一个效率较高的代码了,为何弄了个正则的,这里根本不需要正则,数组+字符判断完全可以做到,速度还快。
回复

使用道具 举报

发表于 2021-11-25 22:17 | 显示全部楼层
我根据你的数据做了个简单的示例,去掉了拆分等不重要的处理部分,1万行*153列也就10秒左右。
你喜欢用正则,所以我就以正则来处理。

test.zip

3.53 MB, 下载次数: 1550

回复

使用道具 举报

发表于 2021-11-25 22:56 | 显示全部楼层    本楼为最佳答案   
现在换用我最初的方法,也是最基础的方法,数组+字符串处理,同样1万行*153列的数据量,只要5秒多,虽然每台电脑性能不同,但在我同一台电脑上的处理时间,至少可以反映出基础方法的效率比看似花哨的处理提升接近50%,我还没在里面使用字典等更加没必要的功能,加上去更慢。

test.zip

76.53 KB, 下载次数: 3

评分

参与人数 1学分 +2 收起 理由
love586 + 2

查看全部评分

回复

使用道具 举报

发表于 2021-11-26 16:07 | 显示全部楼层
本帖最后由 林木水 于 2021-11-26 16:17 编辑

我弱弱的说一句是不是可以使用Ontime函数去实现10秒钟更新一次
提供思路,首先用ontime 绑定一个时间间隔再运行程序,还需要做一个暂停运行的程序。
具体怎么操作自行解决:

Option Explicit
Dim K As Integer
Dim T As Integer
Sub 间隔重复运行()
    If K = 1 Then
        K = 0
        End
    End If
    T = T + 1
    ActiveSheet.Range("a16").Value = T
    Application.OnTime Now + TimeValue("00:00:10"), "间隔重复运行"
End Sub
Sub 暂停运行()
    K = 1
End Sub



回复

使用道具 举报

 楼主| 发表于 2021-11-26 19:36 | 显示全部楼层
大灰狼1976 发表于 2021-11-25 22:56
现在换用我最初的方法,也是最基础的方法,数组+字符串处理,同样1万行*153列的数据量,只要5秒多,虽然每 ...

谢谢大佬,是挺快的,学习了
回复

使用道具 举报

 楼主| 发表于 2021-11-26 19:38 | 显示全部楼层
林木水 发表于 2021-11-26 16:07
我弱弱的说一句是不是可以使用Ontime函数去实现10秒钟更新一次
提供思路,首先用ontime 绑定一个时间间隔 ...

这只是时间隔开,没读取更替区域
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 12:01 , Processed in 0.271368 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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