[文件] VBA錄製 只取表身做資料整理

作者: pipipipig (duck)   2019-02-12 08:26:51
軟體:Excel VBA
遇到的問題
1. 每期資料的表頭欄位是固定的
2. 每期資料量都不同,所以列數會往下新增或減少
3. 資料都會有表尾總計數
現在是直接用VBA錄製動作
1. 用資料篩選,選擇表尾的表格顏色,然後整列刪除
2. 再解除資料篩選,繼續後續的資料整理
但發現這樣range還是只會記憶被刪除的那一列,而不是依每次篩選出來的表尾。
想請問各位大大,只想取表頭跟表尾中間的資料的話可以怎麼整理,感謝~~~~~
https://i.imgur.com/5HnAn92.jpg
作者: soyoso (我是耀宗)   2019-02-12 08:34:00
是指要確定表尾的列號嗎?(因為問題寫到列數會往下新增或減少)如果是的話,range.end、range.find,有連續資料的話,也可配合工作表函數count或counta
作者: pipipipig (duck)   2019-02-12 09:10:00
不好意思文字太抽象,更新一下圖就是每期列1固定,然後列261跟列262都是不要的,所以會篩選顏色再刪除
作者: soyoso (我是耀宗)   2019-02-12 09:16:00
希望是取1:260的資料嗎,如以連結來看的話a1:j260?其他的如篩選顏色再刪除這方面會執行嗎?亦或不要執行而要取出a1:j260的資料?
作者: pipipipig (duck)   2019-02-12 09:19:00
取A2:A260,A2每期都固定,然後A260會往下延伸或是減少列數打錯,是J260不是A260,拍謝拍謝!!
作者: soyoso (我是耀宗)   2019-02-12 09:28:00
以連結來看j261和j262方面是不會鍵入資料嗎?如果不會的話以range("a2:j" & [j1048576].end(xlup).row) 可取得或是以range("a2",[j1048576].end(xlup))range.end方面以可以range.find,或以有連續資料的某欄以工作表函數count或counta來計數(有可能需減不計入的列,如表頭尾的列數)
作者: pipipipig (duck)   2019-02-15 08:01:00
表單後續會再就A2:J的中間下公式和插入欄整理分類,所以目標不是刪除黃色列,而是為了只取A2到J下公式運算,但每期都J的列數都會變。如果範圍這樣取是不是會取到不要的黃色列? ("a2:j" & [j1048576].end(xlup).row)謝謝~~
作者: soyoso (我是耀宗)   2019-02-15 08:13:00
這不一定,就要看黃色列的j欄(是否有鍵入資料,這也是我之前回文所詢問的問題),所提供的寫法也如回文假設,如果不會的話下的情況所以如果黃色的j欄是有鍵入資料(這裡的資料也保括公式)的話,就改以a:i欄內來判斷最後一筆有值的列號,但條件如下1.需黃色列第一列上方是有資料,2.黃色列該欄是沒有資料的以連結來看a:i第一列上方有資料,看起來是除了b和i沒有而2該欄沒有資料來看為d和e。就調整成這二個條件符合下的欄來取得最後一筆有值的列號實際也可能都沒有符合的條件,那就改以判斷任一欄最後一筆有值的列號(有可能包含黃色列,且有資料的條件也固定都會出現在黃色列內),該列號減出現於黃色列內的筆數
作者: pipipipig (duck)   2019-02-18 20:57:00
修改後成功取到值了!!!謝謝s大!!

Links booklink

Contact Us: admin [ a t ] ucptt.com