006l 发表于 2012-4-5 13:11:30

关于在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, "提示", "操作完成!")

veket_linux 发表于 2012-4-5 15:32:32


#Include <Excel.au3>

veket_linux 发表于 2012-4-5 15:35:43

不支持xlsx格式
支持xls格式

veket_linux 发表于 2012-4-5 15:42:38

lz看看这样能不能打开xlsx,我这没有office 07 没法测


Dim $strFiles = FileOpenDialog("选择一个或多个温度数据文件", @WindowsDir & "\", "Microsoft Office Excel 文件(*.xl*)", 1+4)

; "Microsoft Office Excel 文件(*.xl*)" 从 excel 03 的打开对话框里抄来的

006l 发表于 2012-4-5 16:14:43

感谢LS的回答。

我打开单个都是可以的,就是打开一个文件夹下的几个,就打开不了了。

user3000 发表于 2012-4-5 16:29:44

个人理解:
和IE操作一样, 此类的对象操作, 都默认是一个对象吧?
如果对多个对象操作, 是不是要自己先建立多个'对象'?

006l 发表于 2012-4-5 21:14:46

恩,我的想法是.用循环来访问每个存在数组中的地址元素.
访问一个来进行打开,计算,保存,关闭,然后再访问下一个.
可是_ExcelBookOpen里会把数组$arrFileList[$iFileIndex]的中括号认为是设定访问密码的格式.
{:face (207):}

kevinch 发表于 2012-4-5 21:53:58

只能一个个打开,不能用数组做参数来打开

006l 发表于 2012-4-6 00:11:39

那请问一下还有什么可以解决的方案,可以实现这个自动对各个表格内数据计算的功能?在这个问题上弄了半个月了{:face (456):}

veket_linux 发表于 2012-4-6 12:06:11

给楼主参考一下

kevinch 发表于 2012-4-6 15:02:30

回复 9# 006l
如果不涉及跨工作簿引用的问题的话,简单的一个个操作就行了,全部同时打开在数量不多时也是可以的,不过不建议这样做

peterju 发表于 2012-4-7 00:19:50

本帖最后由 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]
......

006l 发表于 2012-4-11 14:52:56

经过LS各位的帮助,问题已经顺利解决啦~,特别谢谢peterju,启发很大
页: [1]
查看完整版本: 关于在AU3中批量打开excel文件并进行单元格计算