PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Visual_Basic
[VBA ] 提升Excel逐行判断执行效率
楼主:
sarcasm
2015-07-28 01:24:43
为了跑公司资料分析自己透过vba简单写了一段整理raw data格式
目前已可正常执行省下大量人工处理的时间
但其中有一段做逐行判断会跑特别久
即便是在最新的i7四核笔电上跑,有时还是会跑到无回应...
因此想请教是否有较有效率的写法
经过分段测试,跑最久的是这段
资料量约近万笔(列)、每笔约100+字段(栏)
作者:
MOONRAKER
(㊣牛鹤鳗毛人)
2015-07-28 02:49:00
没什么好办法,你顶多可以改用loop...until抱歉上面跳过,那没什么用顶多把cells(r,2)="WW"放前面 或干脆分开写 看会不会比较快 你要检查4-100行是不是都0 唯一的办法就是全都看过一次 一万列就是97万格 不可能多快又者我很怀疑叫用工作表函数的效率 你可以多用一个for来检查是不是都0 看是快还是慢
作者:
hulapig
(呼拉猪)
2015-07-28 06:01:00
可以加abs()函数,让所有4至100栏的数字必为正值
作者: knstt
2015-07-28 13:10:00
你需要的是加Application.Calculation=xlCalculationManual应该可大符提升速度
作者:
ClubT
(å°å–¬)
2015-07-28 15:56:00
你可以先把要删除的列数记下来,最后再一次删除应该会快点Sheet1.Range("2:3,5:5").Delete shift:=xlUp另外可以用CountIF的函数我认为慢的部分应该是删除的部分而不是判断式的部分
作者:
biglongtoday
(大长今)
2015-07-30 09:18:00
用specialcells
作者:
hulapig
(呼拉猪)
2015-07-30 11:30:00
如果不删,将该列复制到另一个工作表,最后删除原始工作表不知道会不会比较快
作者:
Yaiba
(绯心刀刃)
2015-07-30 16:53:00
先移动到最下面再一次删除应该可以省时间?!
作者:
olycats
( )
2015-08-08 13:14:00
多加入一栏,下公式判断是否要删除,最后针对该栏筛选筛选出来后一次删除 这样或许会比较快判断全为零 min=0 and max=0 如果资料都是数值的话
继续阅读
Re: [ASP] ASP 网站表单送出中文编码问题
Yaiba
Re: [VBA ] 每天定时执行某宏
Yaiba
[VBA ] 每天定时执行某宏
haruka416
[VBA ] 如何撷取资料画成折线图
williamsm
[ASP] ASP 网站表单送出中文编码问题
Big9
[资讯] Visual Studio 2015 & 2013 Update 5
fumizuki
VBA 读取txt档
goldberg73
[VBA ] 不好意思这是c的问题,但接口一样都是VS
Q1Q2Q3
[.NET] 请教有关vb.net物件导向
hawfu
[.NET] NPOI复制sheet
because25
Links
booklink
Contact Us: admin [ a t ] ucptt.com