heroxianf 发表于 2016-5-21 01:57:06

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

h20040606 发表于 2016-5-21 12:23:18

、你用的au3版本是什么?你换一下3.3.12.0版本试一下。我在3.3.14.2版本下,也经常会出现这样子的问题

h20040606 发表于 2016-5-21 12:28:35

回复 2# h20040606
我使用的3.3.14.X及3.3.15.0操作excel时也是这样。

jiangllllp 发表于 2016-5-21 12:48:11

可能内存不够的问题,建议分拆sheet文件到不同的excel文件,然后减轻内存占用负担,我之前碰到内存不够的情况也会出现这样莫名其妙的错误

heroxianf 发表于 2016-5-21 14:33:03

回复 4# jiangllllp


    我加了定时清理内存还是一样的,只成功运行一次完毕。后来运行都会出错。

heroxianf 发表于 2016-5-21 14:33:35

回复 3# h20040606


    那这样说低版本更稳定?

heroxianf 发表于 2016-5-21 15:06:57

没有优化方案吗?

h20040606 发表于 2016-5-21 22:05:21

回复 6# heroxianf

我也是试验出来的。以前老是跟新版本,后面发现在老版本下正常的程序在新版本下老是出错。

heroxianf 发表于 2016-5-22 03:56:07

回复 4# jiangllllp


    我电脑16g,应该不是内存不够的吧?公司里8g成功过一次!

leon460 发表于 2016-5-23 14:43:28

使用官网的版本试试看呢{:face (356):}

jiangllllp 发表于 2016-5-24 10:06:54

可能是版本问题,如果不能解决的话,最好还是每个exce文件内sheet少点,看看50个一次能不能通过,如果能通过,就分割下把

heroxianf 发表于 2016-5-24 10:16:05

回复 11# jiangllllp


    50个 没问题,但是分割和合并又要操作,感觉有点麻烦。

Chapters 发表于 2016-5-24 14:37:52

k看热闹。。。表示不懂!!!

jiangllllp 发表于 2016-5-24 15:25:02

回复 12# heroxianf


    再写个程序把分割的合并到一个excel文件内,如果你需要的话,只要程序写好,后面的事情就很简单了,就是一开始编写程序时有点麻烦,编写好后面就是执行下程序的事情了
页: [1]
查看完整版本: excel处理389个sheet的时候总是循环卡死[已解决]