kk_lee69 发表于 2011-6-22 11:52:12

[已解決]利用AU3 控制 EXCEL 的操作問題.....取消所有的隱藏與篩選

本帖最后由 kk_lee69 于 2011-6-23 15:42 编辑

使用 AU3 打開EXCEL 後......讀取整張工作表到 陣列裡面........不過卻發現.....原本的EXCEL 工作表
有使用篩選與隱藏行的功能.......導致讀取到陣列裡面的 並非 工作表所有的資料........

所以 想請教如何 以AU3 控制 EXCEL 的工作表 使其取消 篩選功能 與 所有隱藏的功能.....

大概了解的是可以用 AU3 發送 VBA 指令 給EXCEL應該可達成上述目的.....

無奈 小弟 才疏學淺...... 不知道如何以 AU3 發送 VBA 指令......懇請前輩 指點迷津......謝謝

h20040606 发表于 2011-6-22 12:07:28

$oExcel.activesheet.Range("A1:I1").AutoFilter

kevinch 发表于 2011-6-22 12:19:10

$oExcel.activesheet.rows.hidden=false   ;取消全部行的隐藏
$oExcel.activesheet.columns.hidden=false;取消全部列的隐藏

不过隐藏与取得数据不全好像没啥必然联系,除非楼主用的是普通读取,如果用引用vba对象的方式读取,不会读不全的。

kk_lee69 发表于 2011-6-22 12:25:27

感謝回覆可以取消 篩選功能了....但是如果是隱藏的行......即使取消了篩選功能一樣不會出現隱藏的行

有辦法解決嗎??

kevinch 发表于 2011-6-22 16:26:37

贴出你的读取那部分代码看下

kk_lee69 发表于 2011-6-22 16:51:47

讀取就是$aArray = _ExcelReadSheetToArray($oExcel)這樣而已... 重點在於 一個小問題

假設 你的資料表 有10行......其中 3 4 7 行 都隱藏......讀取的資料 是10行完全正確....有隱藏 沒有隱藏無關

但是.....如果 你隱藏的是9 跟 10行......你讀取的資料 就會只有 8行 .......這邊會出問題

kk_lee69 发表于 2011-6-22 17:03:03

不好意思再請教一下$oExcel.activesheet.Range("A1:I1").AutoFilter

這個是有範圍的.......有 沒有範圍的寫法嗎??

就是 不管 有幾列的篩選...... 全部取消的方法嗎??

kevinch 发表于 2011-6-22 19:58:10

干嘛用UDF,为什么不直接改写vba代码?

kk_lee69 发表于 2011-6-23 15:41:50

@@ 因為小弟才疏學淺不懂 VBA@@

hpdeskjet 发表于 2011-7-20 12:31:32

学习了!!谢谢!!
页: [1]
查看完整版本: [已解決]利用AU3 控制 EXCEL 的操作問題.....取消所有的隱藏與篩選