关于在AU3中批量打开excel文件并进行单元格计算
批量选择后,_ExcelBookOpen好像无法打开$arrFileList[$iFileIndex]求大侠帮忙解决{:face (229):}Dim $strFiles = FileOpenDialog("选择一个或多个温度数据文件", @WindowsDir & "\", "表格文件(*.xlsx)", 1+4)
If @error Or $strFiles = "" Then
MsgBox(4096, "警告", "选择文件失败!")
Exit
EndIf
;将多个文件路径分割
Dim $arrFileList = StringSplit($strFiles, "|")
Dim $iFileIndex = 1
For $iFileIndex = 1 To $arrFileList
Local $sFilePath1 = $arrFileList[$iFileIndex]
Local $oExcel = _ExcelBookOpen("$sFilePath1")
_ExcelWriteCell($oExcel, "=AVERAGE(LARGE(B6:FE125,51))", 1, 10)
_ExcelBookSaveAs($oExcel, $strFiles, "xlsx", 0, 1)
_ExcelBookClose($oExcel) ; And finally we close out
Next
MsgBox(4096, "提示", "操作完成!")
#Include <Excel.au3>
不支持xlsx格式
支持xls格式 lz看看这样能不能打开xlsx,我这没有office 07 没法测
Dim $strFiles = FileOpenDialog("选择一个或多个温度数据文件", @WindowsDir & "\", "Microsoft Office Excel 文件(*.xl*)", 1+4)
; "Microsoft Office Excel 文件(*.xl*)" 从 excel 03 的打开对话框里抄来的
感谢LS的回答。
我打开单个都是可以的,就是打开一个文件夹下的几个,就打开不了了。 个人理解:
和IE操作一样, 此类的对象操作, 都默认是一个对象吧?
如果对多个对象操作, 是不是要自己先建立多个'对象'? 恩,我的想法是.用循环来访问每个存在数组中的地址元素.
访问一个来进行打开,计算,保存,关闭,然后再访问下一个.
可是_ExcelBookOpen里会把数组$arrFileList[$iFileIndex]的中括号认为是设定访问密码的格式.
{:face (207):} 只能一个个打开,不能用数组做参数来打开 那请问一下还有什么可以解决的方案,可以实现这个自动对各个表格内数据计算的功能?在这个问题上弄了半个月了{:face (456):} 给楼主参考一下
回复 9# 006l
如果不涉及跨工作簿引用的问题的话,简单的一个个操作就行了,全部同时打开在数量不多时也是可以的,不过不建议这样做 本帖最后由 peterju 于 2012-4-7 00:23 编辑
使用 FileOpenDialog 返回的字串在選擇一個檔案與多個時是不一樣的,選擇多個檔案返回後並用 StringSplit 得到的數組 arrFileList 指的是路徑,故樓主要將 for 的迴圈起始值從2開始,$sFilePath1的指定要記得加上路徑,修改如下
......
Dim $arrFileList = StringSplit($strFiles, "|", 1)
.....
For $iFileIndex = 2 To $arrFileList
Local $sFilePath1 = $arrFileList & $arrFileList[$iFileIndex]
...... 经过LS各位的帮助,问题已经顺利解决啦~,特别谢谢peterju,启发很大
页:
[1]