EXCEL使用transpose($P) 來做行列互換 ,內容太長造成異常[已解决]
本帖最后由 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
行列互换是数据结构的基本算法吧。
这是我不知道EXCEL有这个函数的时候自己写的。请参考。
Func _Transpose($aArray)
Local $i, $j
If Not IsArray($aArray) Then Return SetError(3, 0, 0)
Dim $bArray
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 本帖最后由 kk_lee69 于 2016-4-8 09:47 编辑
回复 2# h20040606
其實那個是 EXCEL 的限制 後來我也是 乾脆 既然讀取的到 就在 AU3 互換行列好了
我比較想了解的是EXCEL 裡面 VBA語法如何解決這個問題
页:
[1]