找回密码
 加入
搜索
查看: 2923|回复: 13

[效率算法] excel处理389个sheet的时候总是循环卡死[已解决]

  [复制链接]
发表于 2016-5-21 01:57:06 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2016-5-25 09:07 编辑

为了添加对应的字符到已有的模板中,需要循环写入、但是EXCEL表里的SHEET有389个,每次写到一半就会弹出错误,请问代码是不是有问题~
Local $aWorkSheets = _Excel_SheetList($oWorkbook)
For $a = 1 To UBound($aWorkSheets)
        Sleep(1000)
        Local $List = $oWorkbook.workSheets($a).UsedRange.Rows.Count
        Sleep(100)
;~ MsgBox(0, '', $List)
        For $i = 0 To $List Step 3
                _Excel_RangeWrite($oWorkbook, $oWorkbook.workSheets($a), '数据库分割', "A" & $i)
                Sleep(10)
        Next
        Sleep(1000)
Next

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-5-21 12:23:18 | 显示全部楼层
、你用的au3版本是什么?你换一下3.3.12.0版本试一下。我在3.3.14.2版本下,也经常会出现这样子的问题
发表于 2016-5-21 12:28:35 | 显示全部楼层
回复 2# h20040606
我使用的3.3.14.X及3.3.15.0操作excel时也是这样。
发表于 2016-5-21 12:48:11 | 显示全部楼层
可能内存不够的问题,建议分拆sheet文件到不同的excel文件,然后减轻内存占用负担,我之前碰到内存不够的情况也会出现这样莫名其妙的错误
 楼主| 发表于 2016-5-21 14:33:03 | 显示全部楼层
回复 4# jiangllllp


    我加了定时清理内存还是一样的,只成功运行一次完毕。后来运行都会出错。
 楼主| 发表于 2016-5-21 14:33:35 | 显示全部楼层
回复 3# h20040606


    那这样说低版本更稳定?
 楼主| 发表于 2016-5-21 15:06:57 | 显示全部楼层
没有优化方案吗?
发表于 2016-5-21 22:05:21 | 显示全部楼层
回复 6# heroxianf

我也是试验出来的。以前老是跟新版本,后面发现在老版本下正常的程序在新版本下老是出错。
 楼主| 发表于 2016-5-22 03:56:07 | 显示全部楼层
回复 4# jiangllllp


    我电脑16g,应该不是内存不够的吧?公司里8g成功过一次!
发表于 2016-5-23 14:43:28 | 显示全部楼层
使用官网的版本试试看呢
发表于 2016-5-24 10:06:54 | 显示全部楼层
可能是版本问题,如果不能解决的话,最好还是每个exce文件内sheet少点,看看50个一次能不能通过,如果能通过,就分割下把
 楼主| 发表于 2016-5-24 10:16:05 | 显示全部楼层
回复 11# jiangllllp


    50个 没问题,但是分割和合并又要操作,感觉有点麻烦。
发表于 2016-5-24 14:37:52 | 显示全部楼层
k看热闹。。。表示不懂!!!
发表于 2016-5-24 15:25:02 | 显示全部楼层
回复 12# heroxianf


    再写个程序把分割的合并到一个excel文件内,如果你需要的话,只要程序写好,后面的事情就很简单了,就是一开始编写程序时有点麻烦,编写好后面就是执行下程序的事情了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 01:37 , Processed in 0.090504 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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