excel处理389个sheet的时候总是循环卡死[已解决]
本帖最后由 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
、你用的au3版本是什么?你换一下3.3.12.0版本试一下。我在3.3.14.2版本下,也经常会出现这样子的问题 回复 2# h20040606
我使用的3.3.14.X及3.3.15.0操作excel时也是这样。 可能内存不够的问题,建议分拆sheet文件到不同的excel文件,然后减轻内存占用负担,我之前碰到内存不够的情况也会出现这样莫名其妙的错误 回复 4# jiangllllp
我加了定时清理内存还是一样的,只成功运行一次完毕。后来运行都会出错。 回复 3# h20040606
那这样说低版本更稳定? 没有优化方案吗? 回复 6# heroxianf
我也是试验出来的。以前老是跟新版本,后面发现在老版本下正常的程序在新版本下老是出错。 回复 4# jiangllllp
我电脑16g,应该不是内存不够的吧?公司里8g成功过一次! 使用官网的版本试试看呢{:face (356):} 可能是版本问题,如果不能解决的话,最好还是每个exce文件内sheet少点,看看50个一次能不能通过,如果能通过,就分割下把 回复 11# jiangllllp
50个 没问题,但是分割和合并又要操作,感觉有点麻烦。 k看热闹。。。表示不懂!!! 回复 12# heroxianf
再写个程序把分割的合并到一个excel文件内,如果你需要的话,只要程序写好,后面的事情就很简单了,就是一开始编写程序时有点麻烦,编写好后面就是执行下程序的事情了
页:
[1]