找回密码
 加入
搜索
查看: 2486|回复: 13

[AU3基础] Excel单个单元格内容很长读取失败[已解决]

  [复制链接]
发表于 2016-4-7 16:22:47 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2016-4-8 13:20 编辑
        Local $bResult = _Excel_RangeRead($oWorkbook, Default, "D953", 2)
        MsgBox(0, '', $bResult)


如上图所示,EXCEL一个单元格里内容过多,是读取不到的,请问有什么办法可以解决吗?  另外用.CSV格式可以用filereadtoarray()可以读取出来,拆分数据到各个TXT里的时候也有出现篡位的情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-4-7 16:36:30 | 显示全部楼层
回复 1# heroxianf

應該 不會讀取不到吧  可以 提供 範例檔案嗎??
 楼主| 发表于 2016-4-7 16:42:10 | 显示全部楼层
回复 2# kk_lee69

應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??應該 不會讀取不到吧  可以 提供 範例檔案嗎??


随便填一些都不能读取的
发表于 2016-4-7 16:51:40 | 显示全部楼层
回复 3# heroxianf

這麼短 可以讀取呀
发表于 2016-4-7 16:55:06 | 显示全部楼层
回复 3# heroxianf

試試看 這個語法吧

$oExcel = _ExcelBookOpen($FileName,0,True) ;打開EXCEL表
;$INFNAME=StringTrimRight($FILEarray1[$f],4)
;$INFNAME2=$BillName1
                
        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
 楼主| 发表于 2016-4-7 23:23:27 | 显示全部楼层
回复 5# kk_lee69



我的是3.3.14.2版本   运行出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-4-8 09:26:49 | 显示全部楼层
回复 6# heroxianf

把 那行拿掉

就可以 讀取到 不管有多長

然後自己再 AU3裡面 再來個行列互換  不用 使用 EXCEL 函數  就可以了
 楼主| 发表于 2016-4-8 09:34:28 | 显示全部楼层
回复 7# kk_lee69

哪行拿掉呢?  貌似我的AU3版本运行部了老的EXCELudf
发表于 2016-4-8 09:35:44 | 显示全部楼层
回复 6# heroxianf
你試試看 這個  保證 不會讀取不到  
陣列方向自己在另外處理

$oExcel = _ExcelBookOpen($FileName,0,True) ;打開EXCEL表
;$INFNAME=StringTrimRight($FILEarray1[$f],4)
;$INFNAME2=$BillName1
                
        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
                        
                ;.parent.close(false) ;讀取完畢後 把頁面關掉的
        EndWith

_ArrayDisplay($ProdArray)


_ExcelBookClose($oExcel, 0, 0)
$oExcel=0
 楼主| 发表于 2016-4-8 10:05:02 | 显示全部楼层
回复 9# kk_lee69


   谢谢, 确实解决了,这个是什么问题呢?
发表于 2016-4-8 10:20:07 | 显示全部楼层
回复 10# heroxianf

你原本的寫法是  AU3 的 EXCEL UDF 因次 這個 UDF 在設計得時候 可能沒考慮太多

因此 長度超過  就會出問題

而我給你的第一個語法是 UDF打開 EXCEL後  不使用 UDF 的 讀取資料函數
而是使用 EXCEL 本身的 VBA 語法 抓取資料,因此 資料都抓的到

只是 抓到的資料 行列是 顛倒的 這是 VBA 內建的 讀取方式問題,

因此我在 第一個語法的時候 又使用了 EXCEL 內建 行列互換的函數

這個 函數有個限制 單存儲格  不可以超過 255字元

所以我給你的第一段語法 就是這邊出錯誤   
也是因為你的問題 才發現 原來  EXCEL 行列互換函數 有這個限制
因此 我發問了另外一個問題

所以最後 乾脆 不要 在EXCEL 行列互換   在AU3 用陣列 行列互換  就可以排除問題
 楼主| 发表于 2016-4-8 13:19:58 | 显示全部楼层
回复 11# kk_lee69


    谢谢了~
发表于 2016-4-8 13:21:42 | 显示全部楼层
得到解決的話 就請修改 標題 已解決
发表于 2016-4-9 22:33:50 | 显示全部楼层
原来可以这样这样考虑啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 04:20 , Processed in 0.130015 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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