|
本帖最后由 cnergao 于 2013-2-17 12:31 编辑
#include <Excel.au3>
#include <Array.au3>
Dim $array[10] = ["中国", "美国", "日本", "英国", "德国", "意大利", "法国", "韩国", "俄罗斯", "印度"]
Local $I, $Y, $array, $aArray1
$sFilePath1 = "D:\AUTOIT_3.3.7.15.1\Test2.xls" ;该文件应该已存在
$oExcel = _ExcelBookOpen($sFilePath1)
$I = $oExcel.ActiveSheet.Range("A65535").End(-4162).Row
$aArray1 = _ExcelReadArray($oExcel, 1, 1, $I, 1, 0) ;从活动工作表的行或列创建一个数组垂直方向
If @error Then
MsgBox(0, "", @error, 2)
Else
$Y = 0
Do
If StringRegExp($aArray1[$Y], $array[0], 0) = 1 Then ;如果匹配写入分组号
_ExcelWriteCell($oExcel, 5, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[1], 0) = 1 Then
_ExcelWriteCell($oExcel, 6, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[2], 0) = 1 Then
_ExcelWriteCell($oExcel, 7, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[3], 0) = 1 Then
_ExcelWriteCell($oExcel, 8, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[4], 0) = 1 Then
_ExcelWriteCell($oExcel, 9, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[5], 0) = 1 Then
_ExcelWriteCell($oExcel, 10, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[6], 0) = 1 Then
_ExcelWriteCell($oExcel, 11, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[7], 0) = 1 Then
_ExcelWriteCell($oExcel, 12, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[8], 0) = 1 Then
_ExcelWriteCell($oExcel, 13, $Y + 1, 2)
ElseIf StringRegExp($aArray1[$Y], $array[9], 0) = 1 Then
_ExcelWriteCell($oExcel, 14, $Y + 1, 2)
Else
_ExcelWriteCell($oExcel, 1, $Y + 1, 2)
EndIf
$Y = $Y + 1
Until $Y = $I
EndIf
这个代码没有任何错误吧?
为什么运行的时候第一次正常。接下来就会出现
D:\AUTOIT_3.3.7.15.1\Include\Excel.au3 (738) : ==> ??????(?????).:
$aArray[$xx] = $oExcel.Activesheet.Cells(($xx - $iIndexBase) + $iStartRow, $iStartColumn).Value
$aArray[$xx] = $oExcel.Activesheet.Cells(($xx - $iIndexBase) + $iStartRow, $iStartColumn)^ ERROR
这样的错误
test2.xls内容如下
简介
语言:<strong>中国<br /></strong>
语言:<strong>美国<br /></strong>
语言:<strong>日本<br /></strong>
语言:<strong>俄罗斯<br /></strong>
语言:<strong>英国<br /></strong>
语言:<strong>德国<br /></strong>
语言:<strong>法国<br /></strong>
语言:<strong>意大利<br /></strong>
语言:<strong>韩国<br /></strong>
语言:<strong>朝鲜<br /></strong>
语言:<strong>印度<br /></strong>
语言:<strong>南非<br /></strong>
实际操作数据有上万条左右。
试了很多次不知道是不是数组定义的问题。有时正常有出错。
然后换了一种思路已经搞定。希望对大家有帮助。答案在三楼 |
|