_ExcelReadSheetToArray读取含有#REF的excel表格出错的问题
#include <Excel.au3>#include <Array.au3>
Local $sFilePath1 = @ScriptDir & "\测试.xlsx" ;这个文件应该已经存在
Local $oExcel = _ExcelBookOpen($sFilePath1)
Local $aArray = _ExcelReadSheetToArray($oExcel) ;使用默认参数
_ArrayDisplay($aArray, "使用默认参数")
_ExcelBookClose($oExcel) ; 关闭工作表, 退出
_ExcelReadSheetToArray这个函数读某个表格总是使au3无响应而退出,后来发现是表格内有公式错误引起的,附件内有测试脚本和Excel文档,请教如果不修改excel如何避免这类错误
只是读不出来而已,不会报错,也不会死掉 MsgBox(0,0,$oExcel.ActiveSheet.range("A1").value)上面的返回值是0 好奇怪,我这脚本都卡死了
AU3的版本问题吗 回复 3# ap112
你的Au3什么版本啊 貌似现在的excel udf还不支持xlsx格式 回复 7# netegg
我用xls格式 也阵亡了{:face (394):}
换了个EXCEL文档再把ExcelReadSheetToArray 提取出来运行到
Local $aArray = $oExcel.ActiveSheet.Range($oExcel.Cells($iStartRow, $iStartColumn), $oExcel.Cells($iLastRow, $iLastColumn)).Value
就死了{:face (189):} 那就等kevinch吧 或者试试排错 v3.2.12.0
你有什么需求,也许可以换一个思路 回复 12# ap112
要用公式处理Excel里的数据,用VBA编程也可以,但GUI和对多个Excel的处理上不是那么顺手
所以想把Excel里的数据复制出来,用AU3就方便多了,可碰到错误公式,脚本就罢工了
论坛里下载不到3.2.12.0这个版本了,把你的打包发给我吧,406841895@qq.com 谢谢啦 下载了3.2.13.10 这个版本,可以运行,但对上千行Excel的处理能力就不如新版了,可能是新版本更新数组的原因吧 本帖最后由 kevinch 于 2015-4-22 19:05 编辑
久也不用03版的excel,无法模拟出错误也就没办法处理
不过你可以试一下下面的方式会不会卡死
Local $aArray = $oExcel.ActiveSheet.Cells($iStartRow, $iStartColumn).resize($iLastRow-$iStartRow+1, $iLastColumn-$iStartColumn+1).Value
如果正常的话,当单元格数量大于1个的时候你会得到一个二维数组,不过行列与excel里是相反的
页:
[1]
2