找回密码
 加入
搜索
查看: 1490|回复: 2

[AU3基础] EXCEL使用transpose($P) 來做行列互換 ,內容太長造成異常[已解决]

[复制链接]
发表于 2016-4-7 17:12:27 | 显示全部楼层 |阅读模式
本帖最后由 kk_lee69 于 2016-4-18 13:12 编辑

EXCEL 使用 application.transpose($P) 來做行列互換 ,內容太長造成異常

不知有人有無辦法解決


$oExcel = _ExcelBookOpen($FileName,0,True) ;打開EXCEL表

        With $oExcel.ActiveSheet;worksheets("")
                $ProdArray=.range("a1").currentregion.value
                ;$arrt=$oExcel.application.intersect(.range("a1").currentregion,.range("a1").currentregion.offset(1)).value ;第一行不讀取
                        
                ;下面這段為 尋找跟替換 ;檢查 讀取到的檔案是否 有 不應該出現的字
                        For $n=0 To UBound($ProdArray)-1
                                For $i=0 To UBound($ProdArray,2)-1
                                        $ProdArray[$n][$i]=StringReplace($ProdArray[$n][$i],"'","")
                                Next
                        Next
                        
                $ProdArray=.application.transpose($ProdArray) ;行列互換
                ;.parent.close(false) ;讀取完畢後 把頁面關掉的
        EndWith

_ArrayDisplay($ProdArray)

_ExcelBookClose($oExcel, 0, 0)
$oExcel=0

评分

参与人数 1金钱 +30 收起 理由
heroxianf + 30 留一脚 学习

查看全部评分

发表于 2016-4-7 18:30:42 | 显示全部楼层
行列互换是数据结构的基本算法吧。
这是我不知道EXCEL有这个函数的时候自己写的。请参考。
Func _Transpose($aArray)
        Local $i, $j
        If Not IsArray($aArray) Then Return SetError(3, 0, 0)
        Dim $bArray[UBound($aArray, 2)][UBound($aArray, 1)]
        For $i = 1 To UBound($aArray, 1)
                For $j = 1 To UBound($aArray, 2)
                        $bArray[$j - 1][$i - 1] = $aArray[$i - 1][$j - 1]
                Next
        Next
        Return $bArray
EndFunc

评分

参与人数 1金钱 +30 收起 理由
kk_lee69 + 30 讚啦

查看全部评分

 楼主| 发表于 2016-4-8 09:24:58 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-4-8 09:47 编辑

回复 2# h20040606

其實  那個是 EXCEL 的限制 後來我也是 乾脆 既然讀取的到 就在 AU3 互換行列好了

我比較想了解的是  EXCEL 裡面 VBA語法  如何解決這個問題
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 02:54 , Processed in 0.194667 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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