找回密码
 加入
搜索
查看: 5837|回复: 7

[效率算法] 【已解决】双循环出错,为什么只循环一层呢?

[复制链接]
发表于 2014-5-30 14:49:05 | 显示全部楼层 |阅读模式
本帖最后由 ap112 于 2014-5-30 16:39 编辑

#include <Excel.au3>

$sFilePath1 = "D:\sgmuserprofile\dong hongfei\Desktop\1.xls" ;打开EXCEL文件
$oExcel = _ExcelBookAttach($sFilePath1)
If @error = 1 Then
        MsgBox(0, "错误!", "无法创建对象!")
        Exit
ElseIf @error = 2 Then
        MsgBox(0, "错误!", "文件不存在!")
        Exit
EndIf
$hang = InputBox("提示", "输入你要获取多少行数据:", "1")
Global $EX[500][6]
$j=0
If $hang < 1 Then
        MsgBox("","","输入错误!")
        Exit
Else
        For $i = 1 To $hang Step +1
                Do
                        $j=$j+1
                        $EX[$i][$j] = _ExcelReadCell($oExcel,$i,$j)
                        MsgBox(0, "",$EX[$i][$j])
                Until $j=6
                ExitLoop               
        Next
EndIf
 楼主| 发表于 2014-5-30 14:52:33 | 显示全部楼层
If $hang < 1 Then
        MsgBox("","","输入错误!")
        Exit
Else
        For $i = 1 To $hang Step +1
                Do
                        $j=$j+1
                        $EX[$i][$j] = _ExcelReadCell($oExcel,$i,$j)
                        MsgBox(0, "",$EX[$i][$j])
                Until $j=6
                    
        Next
EndIf

这样也不行,换成双For也不行?????
发表于 2014-5-30 15:01:46 | 显示全部楼层
#include <Excel.au3>

$sFilePath1 = "D:\sgmuserprofile\dong hongfei\Desktop\1.xls" ;打开EXCEL文件
$oExcel = _ExcelBookAttach($sFilePath1)
If @error = 1 Then
        MsgBox(0, "错误!", "无法创建对象!")
        Exit
ElseIf @error = 2 Then
        MsgBox(0, "错误!", "文件不存在!")
        Exit
EndIf
$hang = InputBox("提示", "输入你要获取多少行数据:", "1")
Global $EX
If $hang < 1 Then
        MsgBox("","","输入错误!")
        Exit
Else
    with $oExcel.activesheet.usedrange
        $EX=.cells(1,1).resize($hang,.columns.count).value
    end with
EndIf
这样试下,不过行列是反的,如果存在一个单元格的情况,还要判断一下isarray($EX)
 楼主| 发表于 2014-5-30 15:07:08 | 显示全部楼层
回复 3# kevinch
$EX 中没获取到值呀?试了不行。我是想把Excel逐行读取数据,并输出来。
 楼主| 发表于 2014-5-30 15:30:42 | 显示全部楼层
为什么没人回呀?
 楼主| 发表于 2014-5-30 15:46:03 | 显示全部楼层
很急呀!大神来帮帮我吧
发表于 2014-5-30 16:15:23 | 显示全部楼层
本帖最后由 shqf 于 2014-5-30 16:19 编辑

出错信息看了吗?是哪一句出错了?
“$EX[$i][$j] = _ExcelReadCell($oExcel, $i, $j)
^ ERROR”
这说明 是这一句中的$EX[$i][$j] 出错了。不是循环出错啊,是超出数组定义的大小!
Global $EX[500][6]改成Global $EX[500][7],ExitLoop是不能有的。
 楼主| 发表于 2014-5-30 16:38:52 | 显示全部楼层
回复 7# shqf


    谢谢! 已解决
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-14 03:09 , Processed in 0.080708 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表